I’m executing the following code
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')
But it’s causing an exception
7610 [SocketListener0-1] INFO org.openqa.jetty.jetty.context./wd – WebDriver remote server: Fatal, unhandled exception: /session:java.lang.ClassCastException:java.lang.String cannot be cast to java.util.Map
7610 [SocketListener0-1] WARN org.openqa.jetty.jetty.servlet.ServletHandler – EXCEPTION javax.servlet.ServletException: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
.
.
.
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map at org.openqa.selenium.remote.server.handler.NewSession.setJsonParameters(NewSession.java:57)
Complete log can be found here…
http://code.google.com/p/selenium/issues/attachmentText?id=3513&aid=35130000000&name=ClassCastException.log&token=0yyAQKr_QP9Reg1csQTF5kRXfEM%3A1331442979189
I have written it as bug, but what to make sure from experts here that whether it’s a bug or something I’m missing.
from selenium.webdriver import DesiredCapabilitiesdriver = webdriver.Remote(command_executor="http://selenium.server.com:4444/wd/hub", desired_capabilities=DesiredCapabilities.FIREFOX)Problem with my earlier code was I provided value for desired_capabilities as a string but it should be a proper dict. Once I changed it it started working.
I got this solution from Jayakumar C in selenium-users google groups.