Selenium webdriver implicitly_wait导致classCastException

时间:2012-03-11 05:30:39

标签: selenium webdriver wait

我正在执行以下代码

import selenium
from selenium import webdriver
driver = webdriver.Remote(command_executor="http://selenium.server.com:4444/wd/hub", desired_capabilities="webdriver.DesiredCapabilities.FIREFOX")
driver.implicitly_wait(60)
driver.get('http://www.google.com')

但它导致异常

  

7610 [SocketListener0-1] INFO org.openqa.jetty.jetty.context./wd - WebDriver远程服务器:致命的未处理异常:/session:java.lang.ClassCastException:java.lang.String无法强制转换为java.util.Map

     

7610 [SocketListener0-1] WARN org.openqa.jetty.jetty.servlet.ServletHandler - EXCEPTION javax.servlet.ServletException:java.lang.ClassCastException:java.lang.String无法强制转换为java.util.Map < / p>      

     

     

     

引起:java.lang.ClassCastException:java.lang.String无法强制转换为org.openqa.selenium.remote.server.handler.NewSession.setJsonParameters(NewSession.java:57)中的java.util.Map / p>

完整的日志可以在这里找到...... http://code.google.com/p/selenium/issues/attachmentText?id=3513&aid=35130000000&name=ClassCastException.log&token=0yyAQKr_QP9Reg1csQTF5kRXfEM%3A1331442979189

我把它写成了bug,但是从这里的专家那里可以确定这是一个错误还是我错过的东西。

2 个答案:

答案 0 :(得分:0)

你有奇怪的WebDriver初始化。试试WebDriver webdriver = new RemoteWebdriverWebDriver webdriver = new FirefoxDriver()

答案 1 :(得分:0)

from selenium.webdriver import DesiredCapabilities

driver = webdriver.Remote(command_executor="http://selenium.server.com:4444/wd/hub", desired_capabilities=DesiredCapabilities.FIREFOX)

我早期代码的问题是我为desired_capabilities提供了一个字符串的值,但它应该是一个合适的字典。一旦我改变了它就开始工作了。

我从Jayakumar C获得了selenium用户谷歌小组的解决方案。