2017-07-25 78 views
0

使用SauceLabs中的任何可用操作系統(Linux除外),通過使用Python綁定(3.4.3)對Selenium(3.4.0)執行簡單的Firefox懸停測試最新的可用的Firefox版本太舊),通過執​​行以下ActionChain:Selenium remoteWebDriver(&SauceLabs)Firefox moseMoveTo動作異常

hover = ActionChains(driver) 
hover.move_to_element(elm_Men_Menu).perform() 

它引發以下錯誤:

Taceback:

File [...] in testHover 
hover.perform() 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 80, in perform 
action() 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 290, in <lambda> 
                               Command.MOVE_TO, {'element': to_element.id})) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute 
self.error_handler.check_response(response) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
raise exception_class(message, screen, stacktrace) 
WebDriverException: Message: mouseMoveTo 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
System info: host: 'itako44164.prod.miso', ip: '[...]', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.1', java.version: '1.8.0_112' 
Driver info: driver.version: RemoteWebDriver 
Stacktrace: 
at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode (AbstractHttpCommandCodec.java:220) 
at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode (AbstractHttpCommandCodec.java:118) 
at org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:158) 
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute (DriverCommandExecutor.java:82) 
at org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:637) 
at org.openqa.selenium.remote.RemoteExecuteMethod.execute (RemoteExecuteMethod.java:35) 
at org.openqa.selenium.remote.RemoteMouse.mouseMove (RemoteMouse.java:89) 
at org.openqa.selenium.support.events.internal.EventFiringMouse.mouseMove (EventFiringMouse.java:58) 
at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call (MouseMoveToLocation.java:59) 
at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call (MouseMoveToLocation.java:32) 
at java.util.concurrent.FutureTask.run (FutureTask.java:266) 
at org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176) 
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617) 
at java.lang.Thread.run (Thread.java:745) 

本地它完美地工作。我是,使用geckodriver 0.17.0和Selenium 3.4.3(已編輯)。這是Selenium之前報告的錯誤,但Selenium 3.x和geckodriver 0.15.0(https://github.com/SeleniumHQ/selenium/issues/2285)已解決。對於SauceLabs測試,我使用的是Selenium 3.4.0(可以在錯誤報告中看到)以及SauceLabs文檔中,對於Firefox 53和更高版本,使用geckodriver 0.16.0(https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options#TestConfigurationOptions-SeleniumVersion),原則上應該支持move_to_element()動作。

有什麼我做錯了嗎?有沒有辦法指定geckodriver版本?截至目前,所需的功能是這樣的:

desired_cap = { 
    'platform':"Mac OS X 10.12", 
    'browserName':"firefox", 
    'version':"54", 
    'seleniumVersion':"3.4.0", 
} 

編輯1:我沒有提到它,但它與Chrome和IE11工作

編輯2:同樣的問題出現當在Linux中使用selenium獨立服務器(3.4.0)在本地執行代碼時。 geckodriver版本是0.17.0。除了System info: host:

+0

快速的問題,您提到的硒3.4.0版本是本地使用的本地python綁定或硒服務器的版本?對於我來說,動作類中的一些命令在本地設置中失敗(安裝:gecko 0.16,selenium server 3.4.0和python binding 3.4.0)如果我從本地設置中刪除服務器,即不使用remotewebdriver,那麼action類中的命令工作。 –

+0

它是我的本地python綁定的版本(實際上,它是錯誤的,它是3.4.3,在帖子中更正)。事實上,本地我沒有使用remotewebdriver,因此這可能是導致此行爲的原因。你有沒有向Selenium報告這些錯誤?它們與moveTo行動有關嗎? (我現在會檢查它) – Rhysbeaubeaux

+0

不,我沒有' t有機會深入潛水,所以沒有'噸報告它呢。據我所知,moveTo是受影響的。你試過了嗎? –

回答

相關問題