Selenium remoteWebDriver(&SauceLabs)Firefox moseMoveTo动作异常
使用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:
完全一样的回溯解决:
硒已经意识到了这个问题:
https://github.com/SeleniumHQ/selenium/issues/4008
它已经得到解决,将在3.5版本可用:
https://github.com/SeleniumHQ/selenium/issues/3808#issuecomment-311105917
现在可以解决克隆t他主存储库,建立自己的硒服务器,并启动节点与-enablePassThrough
国旗
快速的问题,您提到的硒3.4.0版本是本地使用的本地python绑定或硒服务器的版本?对于我来说,动作类中的一些命令在本地设置中失败(安装:gecko 0.16,selenium server 3.4.0和python binding 3.4.0)如果我从本地设置中删除服务器,即不使用remotewebdriver,那么action类中的命令工作。 –
它是我的本地python绑定的版本(实际上,它是错误的,它是3.4.3,在帖子中更正)。事实上,本地我没有使用remotewebdriver,因此这可能是导致此行为的原因。你有没有向Selenium报告这些错误?它们与moveTo行动有关吗? (我现在会检查它) – Rhysbeaubeaux
不,我没有' t有机会深入潜水,所以没有'吨报告它呢。据我所知,moveTo是受影响的。你试过了吗? –