风流倜傥的麦片 · 班宇一出手,范伟和东北剧都变高端了_手机新浪网· 2 月前 · |
行走的眼镜 · nodejs利用163邮箱发送邮件_163a ...· 3 月前 · |
不羁的面包 · 亚锦赛-中国男篮70-57力克伊朗 ...· 1 年前 · |
憨厚的金鱼 · 线性代数(三十八) : ...· 1 年前 · |
微醺的勺子 · 训犬--必读:训狗的基本思路2.2 ...· 1 年前 · |
给定:尝试在RemoteWebDriver中使用C#中的此代码。
var url = new Uri("http://localhost:4444/wd/hub");
var wd = new RemoteWebDriver(url, DesiredCapabilities.Chrome());
上面的新RemoteWebDriver代码在超时之前不会响应.
详细信息
我已经用以下参数启动了我的集线器到Selenium Server:
-jar "C:\SomeFolder\selenium-server-standalone-3.0.1.jar" -port 4444 -role hub
并注册了一个节点使用这些部分..。
-jar "C:\SomeFolder\selenium-server-standalone-3.0.1.jar" -role node -hub http://localhost:4444/grid/register -port 9662
调试
如果我在启动集线器后输入这个URL,它将显示有一个注册节点:
http://location:4444/grid/console
但是在启动集线器后输入这个url时
浏览器显示了指向ExternalSessionKey.java的java (json)堆栈跟踪。
{"status":13,"value":{"class":"java.lang.NullPointerException","stackTrace":[{"fileName":"ExternalSessionKey.java","className":"org.openqa.grid.internal.ExternalSessionKey","methodName":"fromWebDriverRequest","lineNumber":77},{"fileName":"WebDriverRequest.java","className":"org.openqa.grid.web.servlet.handler.WebDriverRequest","methodName":"extractSession","lineNumber":62},{"fileName":"RequestHandler.java","className":"org.openqa.grid.web.servlet.handler.RequestHandler","methodName":"getSession","lineNumber":231},{"fileName":"RequestHandler.java","className":"org.openqa.grid.web.servlet.handler.RequestHandler","methodName":"process","lineNumber":118},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"process","lineNumber":83},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"doGet","lineNumber":61},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":687},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":790},{"fileName":"ServletHolder.java","className":"org.seleniumhq.jetty9.servlet.ServletHolder","methodName":"handle","lineNumber":808},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doHandle","lineNumber":587},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doHandle","lineNumber":221},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doHandle","lineNumber":1127},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doScope","lineNumber":515},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doScope","lineNumber":185},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doScope","lineNumber":1061},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"handle","lineNumber":141},{"fileName":"HandlerWrapper.java","className":"org.seleniumhq.jetty9.server.handler.HandlerWrapper","methodName":"handle","lineNumber":97},{"fileName":"Server.java","className":"org.seleniumhq.jetty9.server.Server","methodName":"handle","lineNumber":499},{"fileName":"HttpChannel.java","className":"org.seleniumhq.jetty9.server.HttpChannel","methodName":"handle","lineNumber":310},{"fileName":"HttpConnection.java","className":"org.seleniumhq.jetty9.server.HttpConnection","methodName":"onFillable","lineNumber":257},{"fileName":"AbstractConnection.java","className":"org.seleniumhq.jetty9.io.AbstractConnection$2","methodName":"run","lineNumber":540},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool","methodName":"runJob","lineNumber":635},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool$3","methodName":"run","lineNumber":555},{"className":"java.lang.Thread","methodName":"run","lineNumber":-1}]}}
有人能为我解释堆栈跟踪吗?该怎么做才能起作用呢?
谢谢!
发布于 2017-01-19 14:11:39
此问题的症状是此代码中的连接超时异常。
var url = new Uri("http://localhost:4444/wd/hub");
var wd = new RemoteWebDriver(url, DesiredCapabilities.Chrome());
根源
造成这种情况的原因是,在调试过程中,我在此语句之前结束了程序:
wd.Quit();
因为我的集线器只为一个节点配置,所以以前的调试会话在集线器上仍然有一个孤立的会话。重新启动集线器解决了这个问题,但也有配置任意多个节点的能力。
集线器逻辑的另一个错误是,在配置中设置的正确超时中没有清理孤立节点。这导致孤立节点存活的时间远远超过超时的时间.查看配置选项,以便自己查看。应该有一个不活动的计时器,上面写着“如果x秒中没有活动”,就会杀死会话。
One解决方案
确保(至少)配置集线器以允许调试解决方案时需要的更多节点。
发布于 2017-01-17 03:26:23
你的结局没什么不对的。
URL
http://localhost:4444/wd/hub
的设计使得它期望您的操作有一个有效负载。由于您没有提供所需的有效负载,所以您正在看到一个NullPointerException。
此URL不应在浏览器中打开。它的意思是通过Http操作来使用它,并有一个符合 硒w3c规范 的正确的有效负载。
https://stackoverflow.com/questions/41682885
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
风流倜傥的麦片 · 班宇一出手,范伟和东北剧都变高端了_手机新浪网 2 月前 |