小编Gre*_*g S的帖子

当webdriverjs从不调用延续时,该怎么办,只是挂起?

我正在运行webdriverjs并遇到一个问题,即webdriver只是空闲而且似乎停止运行事件.我正在使用webdriver启动一个新的浏览器,然后该浏览器中的代码连接到webdriver会话并运行测试命令.

这似乎工作正常,但随后与一些命令序列,webdriver只是停滞.例如,在我的测试中:

driver.findElement(my_element).then(function(element) {
  console.info("found");
  element.getTagName().then(function(name) {
    console.info("got tag name", name);
  });
});
Run Code Online (Sandbox Code Playgroud)

浏览器输出第一个"找到"日志行,但不输出第二个"获取标签名称".Webdriver似乎没有失败 - 日志中没有例外,如果我在getTagNamepromise 上注册了errback ,它就永远不会被调用.它只是不会发生.

webdriver实例是selenium-standalone-server.看看它的日志,我看到了第一个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
Run Code Online (Sandbox Code Playgroud)

但我从来没有看到第二个请求,所以似乎webriver JS永远不会最终调用服务器.

我正在逐步查看webdriver代码以查看发生了什么,但promise框架使用了大量的闭包,并且很难有效地检查状态.有没有人对这个问题有所了解?

javascript webdriver selenium-webdriver

5
推荐指数
1
解决办法
551
查看次数

标签 统计

javascript ×1

selenium-webdriver ×1

webdriver ×1