我正在执行以下代码
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,但是从这里的专家那里可以确定这是一个错误还是我错过的东西。
答案 0 :(得分:0)
你有奇怪的WebDriver初始化。试试WebDriver webdriver = new RemoteWebdriver
或WebDriver 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用户谷歌小组的解决方案。