Unicorn HTTP服務器的一個實例在我的服務器上運行。 它加載在這個目錄下的一些文件:是Unicorn還是Selenium問題?
~/apps/myapp/current/
此路徑的符號鏈接的最後一個版本在這個路徑:
~/apps/myapp/releases/234234532/
這是由Capistrano的部署時配置。 爲了確保Unicorn重新啓動,我也手動執行,即使我的deploy.rb包含在最後調用的deploy:restart任務,因爲我讀到Capistrano對Unicorn會有一些問題。
我的應用程序即將通過Selenium WebDriver啓動一個Selenium實例。 但是,這是我的問題,硒似乎指向一箇舊版本。
爲了確定,我選擇刪除我的進程中的重要文件,以查看我的應用是否仍然正常啓動,這是我期望的非常好的發佈。 希望我的應用程序沒有啓動,並且出現了一些邏輯錯誤。
所以現在我確定我指的是好的版本,我不明白硒的行爲。我解釋:
日誌中出現的錯誤是:
invalid page structure: Unable to locate element: {"method":"id","selector":"sectionSearch"}
Command duration or timeout: 1.02 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:08:38'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.13-grsec-xxxx-grs-ipv6-64', java.version: '1.7.0_147-icedtea'
Driver info: driver.version: EventFiringWebDriver (org.openqa.selenium.NoSuchElementException)
綜上所述,硒抱怨和id元素:sectionSearch
爲在有關HTML頁面丟失。
所以,建議這篇文章:http://seleniumhq.org/docs/04_webdriver_advanced.html,我通知特定HTML元素不存在以前提高了超時:
wait {driver.find_element(:id, 'sectionSearch')}
有關信息,等待是一個自定義的方法:
def wait(timeout = 50, &block)
Selenium::WebDriver::Wait.new(timeout: timeout).until(&block)
end
在本地計算機(開發環境)中,這可能是因爲我使用另一個SeleniumDriver:FirefoxDriver
def driver
@driver ||= begin
if Rails.env.production?
driver = Selenium::WebDriver.for :remote, url: 'http://localhost:4444/wd/hub'
else
driver = Selenium::WebDriver.for :firefox
end
driver.manage.timeouts.implicit_wait = 20
driver
end
end
但還是之後同樣的問題與我的服務器甚至殺害並重新啓動麒麟:
invalid page structure: Unable to locate element: {"method":"id","selector":"sectionSearch"}
Command duration or timeout: 1.02 seconds
所以,我的最後一個動作是服務器的應用程序當前文件夾中手動更改行:
wait {driver.find_element(:id, 'sectionSearch')}
通過
wait {driver.find_element(:id, 'sectionSearchhhhhhhh')}
現在我的期望是看到硒抱怨這個缺少的元素,因此誤差將是合乎邏輯。爲什麼要這樣做?因爲我想確保Selenium採用UPDTATED源文件。
而且似乎並非如此,因爲...出現與上一個相同的錯誤。
任何有想法的人?
非常感謝對此的解釋:) – Mik378 2012-08-10 12:53:22
高興的是,我可能是一些幫助:)! – 2012-08-10 13:46:19