iPhone iWebDriver和Selenium网格返回org.openqa.selenium.WebDriverException:转发请求时出错输入字符串:“(null)”

时间:2013-02-11 18:07:34

标签: java selenium selenium-grid

Hello StackOverflow社区,

我正在尝试使用实际设备运行Selenium网格。当我使用Android手机时,我的设置(种类)有效,但当我使用iPhone时,它会给我以下错误消息

"Error forwarding the request For input string: "(null)"

所以我的问题归结为:

  1. 如何使用Selenium Grid2设置iPhone WebDriver?
  2. 到目前为止我做了什么:

    网格设置:

    设置selenium Grid

    java -jar selenium-server-standalone-2.28.0.jar -role hub
    

    设置iPhone节点

    转到设置> iWebDriver

    港口:3001

    网格:localhost ip地址和端口:4444

     java -jar selenium-server-standalone-2.28.0.jar -role webdriver -host [phone Host] -port 3001 -hub http://localhost:4444/grid/register -browser browserName=iPhone,platform=MAC
    

    然后我使用以下

    运行junit测试
     public void testIphoneDriver() throws Exception {
        DesiredCapabilities capability = DesiredCapabilities.iphone();
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub") , capability);
        driver.get("http://www.google.com");   }
    

    然后我收到错误“错误转发请求输入字符串:”(null)“ 奇怪的是,如果我直接连接到设备(用iPhone IP地址替换localhost:4444),它可以正常工作。

    下面是堆栈跟踪

      

    引起:org.openqa.selenium.remote.ErrorHandler $ UnknownServerException:转发新会话时出错转发请求时出错输入字符串:“(null)”   构建信息:版本:'2.28.0',修订版:'18309',时间:'2012-12-11 15:53:30'   系统信息:os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.6.0_25'   驱动程序信息:driver.version:未知       在org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:111)       在org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:84)       在org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:68)       在javax.servlet.http.HttpServlet.service(HttpServlet.java:727)       在javax.servlet.http.HttpServlet.service(HttpServlet.java:820)       在org.seleniumhq.jetty7.servlet.ServletHolder.handle(ServletHolder.java:565)       在org.seleniumhq.jetty7.servlet.ServletHandler.doHandle(ServletHandler.java:479)       在org.seleniumhq.jetty7.server.session.SessionHandler.doHandle(SessionHandler.java:225)       在org.seleniumhq.jetty7.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)       在org.seleniumhq.jetty7.servlet.ServletHandler.doScope(ServletHandler.java:406)       在org.seleniumhq.jetty7.server.session.SessionHandler.doScope(SessionHandler.java:186)       在org.seleniumhq.jetty7.server.handler.ContextHandler.doScope(ContextHandler.java:965)       在org.seleniumhq.jetty7.server.handler.ScopedHandler.handle(ScopedHandler.java:117)       在org.seleniumhq.jetty7.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)       在org.seleniumhq.jetty7.server.Server.handle(Server.java:349)       at org.seleniumhq.jetty7.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452)       在org.seleniumhq.jetty7.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47)       在org.seleniumhq.jetty7.server.AbstractHttpConnection.content(AbstractHttpConnection.java:894)       在org.seleniumhq.jetty7.server.AbstractHttpConnection $ RequestHandler.content(AbstractHttpConnection.java:948)       在org.seleniumhq.jetty7.http.HttpParser.parseNext(HttpParser.java:857)       在org.seleniumhq.jetty7.http.HttpParser.parseAvailable(HttpParser.java:235)       在org.seleniumhq.jetty7.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)       在org.seleniumhq.jetty7.server.bio.SocketConnector $ ConnectorEndPoint.run(SocketConnector.java:254)       在org.seleniumhq.jetty7.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)       在org.seleniumhq.jetty7.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:534)       在java.lang.Thread.run(未知来源)

1 个答案:

答案 0 :(得分:0)

我们在Selenium项目的相关维基页面上提供了一些关于如何为iPhone驱动程序配置连接和网格的文档http://code.google.com/p/selenium/wiki/IPhoneDriver

您还可以测试测试与集线器之间是否存在连接;和运行webdriver的集线器和iphone;使用telnet或甚至网络浏览器连接到相应的URL,例如到

http://localhost:4444/wd/hub

如果您在计算机上使用Web浏览器运行测试。

我希望这足以使你和处于类似困境的人们能够让他们的测试工作。感谢您详细描述了您的所作所为。