当 webdriverjs 从不调用延续,只是挂起时该怎么办
What to do when webdriverjs never calls a continuation, and just hangs?
我正在运行webdriverjs,并遇到了webdriver闲置并且似乎停止运行事件的问题。我正在使用 webdriver 启动一个新浏览器,然后该浏览器中的代码连接到 webdriver 会话并运行测试命令。
这似乎工作正常,但是对于一些命令序列,Web驱动程序只是停滞不前。例如,在我的测试中:
driver.findElement(my_element).then(function(element) {
console.info("found");
element.getTagName().then(function(name) {
console.info("got tag name", name);
});
});
浏览器输出第一个"找到"日志行,但不输出第二个"获取标签名称"。Webdriver 似乎没有失败 - 日志中没有异常,如果我在 getTagName
承诺上注册错误,它永远不会被调用。它只是没有发生。
Web驱动程序实例是一个Selenium独立服务器。查看其日志,我看到第一个findElement
请求:
12:59:43.382 INFO - Executing: [execute script: return (function lookupElement(id) {
var store = document["$webdriver$"];
if(!store) {
return null
}
var element = store[id];
if(!element || element[id] !== id) {
return[]
}
return[element]
}).apply(null, arguments);, [51d37tw]] at URL: /session/1337200865492/execute)
12:59:43.393 INFO - Done: /session/1337200865492/execute
但是我从未看到第二个请求,因此似乎webriver JS永远不会最终调用服务器。
我正在逐步浏览 webdriver 代码以查看发生了什么,但 promise
框架使用了很多闭包,并且很难有效地检查状态。有人熟悉这个问题吗?
这是WebdriverJS中的一个错误,由Selenium团队确认并修复。见 http://code.google.com/p/selenium/issues/detail?id=3930
相关文章:
- JavaScript执行暂时挂起页面
- 是定义的操作系统睡眠/挂起期间setTimeout的行为
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- 应用将图表转换为图像的jqplot代码时Chrome挂起
- 如何在不使用Internet Explorer的情况下从未挂起的HTML文件执行程序
- MongoDB collection.find()查询挂起
- 使用子字符串方法时应用程序挂起的原因
- 如何在AngularJS中取消挂起的请求
- 从node.js应用程序调用Mongoose Model.save()时挂起
- Chrome,Safari在从本地存储读取时挂起,而Firefox很好
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- 挂起 JavaScript 键关闭事件
- HERE 映射 JS API v3 集群提供程序挂起,添加许多数据点
- Ajax 调用挂起在 jQuery 中
- writeln img src将数据提交到外部系统-Firefox和IE挂起
- 在jQuery中,.state()如何确定一个承诺是挂起的、已解决的还是被拒绝的
- 为什么JavaScript中没有挂起回调函数
- 当 webdriverjs 从不调用延续,只是挂起时该怎么办
- Promise A+实现:当调用then()并且Promise仍然挂起时该怎么办