Hello StackOverflow社区,
我正在尝试使用实际设备运行Selenium网格。当我使用Android手机时,我的设置(种类)有效,但当我使用iPhone时,它会给我以下错误消息
"Error forwarding the request For input string: "(null)"
所以我的问题归结为:
到目前为止我做了什么:
网格设置:
设置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(未知来源)
答案 0 :(得分:0)
我们在Selenium项目的相关维基页面上提供了一些关于如何为iPhone驱动程序配置连接和网格的文档http://code.google.com/p/selenium/wiki/IPhoneDriver
您还可以测试测试与集线器之间是否存在连接;和运行webdriver的集线器和iphone;使用telnet或甚至网络浏览器连接到相应的URL,例如到
http://localhost:4444/wd/hub
如果您在计算机上使用Web浏览器运行测试。
我希望这足以使你和处于类似困境的人们能够让他们的测试工作。感谢您详细描述了您的所作所为。