2017-07-25 2 views
0

Lors de l'exécution d'un simple test de survol sur Firefox via Selenium (3.4.0) avec des liaisons Python (3.4.3) en utilisant l'un des OS disponibles dans SauceLabs (sauf Linux, pour lequel la dernière version disponible Firefox est trop vieux), en effectuant la ActionChain suivante:Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception

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

Il jette l'erreur suivante:

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) 

Localement cela fonctionne parfaitement. Je suis, en utilisant geckodriver 0.17.0 et Selenium 3.4.3 (édité). C'était une erreur précédemment rapportée dans Selenium, mais elle a été résolue pour Selenium 3.x et geckodriver 0.15.0 (https://github.com/SeleniumHQ/selenium/issues/2285). Pour le test SauceLabs, j'utilise Selenium 3.4.0 (comme on peut le voir dans le rapport d'erreurs) et dans la documentation de SauceLabs, pour Firefox 53 et les versions supérieures, geckodriver 0.16.0 est utilisé (https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options#TestConfigurationOptions-SeleniumVersion), qui, en principe, devrait prendre en charge l'action move_to_element().

Y a-t-il quelque chose que je fais de mal? Existe-t-il un moyen de spécifier la version de geckodriver? A l'heure actuelle, les capacités souhaitées ressemblent à ceci:

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

Edit 1: Je ne l'ai pas mentionné, mais il fonctionne à la fois avec Chrome et IE11

Edit 2: Le même problème se produit lors de l'exécution du code localement avec le serveur autonome Selenium (3.4.0) sous Linux. La version de geckodriver est 0.17.0. Exactement le même retraçage sauf pour System info: host:

+0

Question rapide, la version de sélénium 3.4.0 que vous avez mentionnée est la version de vos bindings python locaux ou du serveur sélénium utilisé localement? Pour moi certaines des commandes dans la classe actions échouent dans l'installation locale (setup: gecko 0.16, selenium server 3.4.0 et python binding 3.4.0) si je retire le serveur de ma configuration locale ie n'utilise pas remotewebdriver alors les commandes dans la classe des actions fonctionne . –

+0

C'est la version de mes bindings python locaux (en fait, c'est faux, c'est le 3.4.3, corrigé dans le post). En fait, localement, je n'utilise pas le remotewebdriver, ce qui pourrait être la cause de ce comportement. Avez-vous signalé ces erreurs à Selenium? Sont-ils liés aux actions moveTo? (Je vais le vérifier maintenant) – Rhysbeaubeaux

+0

Non, je didn ' t obtenir une chance de plonger en profondeur dans ce si didn ' t signaler encore. Oui moveTo est affecté autant que je me souvienne. Est-ce que tu l'as essayé? –

Répondre