javascript - Selenium 处理超时 driver.wait

标签 javascript node.js asynchronous selenium-webdriver wait

我正在使用 selenium-webdriver,等待页面加载并使用 driver.wait 检查(等待标签显示)。

两件事

  1. 有没有办法处理 driver.wait 超时导致的错误(以阻止服务器崩溃)?

  2. 既然我开始怀疑这种方法不合适,那么这是一个只使用 driver.sleep 然后使用 driver.findElement 的好地方吗? > 检查标签是否存在?

谢谢!

最佳答案

使用 promise ,我找到了解决问题的方法:

driver.wait(webdriver.until.elementLocated(webdriver.By.tagName(selector)), 10 * 1000, "Timed out")
  .catch(function(e){
    if (e.message.match("Timed out")){
      return e; 
    } else {
      throw e;
    }
  })
  .then(function(e){
    if (e.message && e.message.match("Timed out")){
      driver.quit();
    } else {
      [functional code]
      });
    }
  });

这有点笨拙,因为 selenium-webdriver 只是使用抛出错误而不是超时时的命名错误。但它似乎比使用 driver.sleep 更好。

关于javascript - Selenium 处理超时 driver.wait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38025501/

相关文章:

javascript - 使用 GSAP 制作动画模糊滤镜

javascript - 从子文件夹运行的 Node.js 服务器

node.js - 错误: update acceptor rejected

node.js - 如何提供 less-css 上下文?

php - 异步 => 在 drupal_add_js() : asynchronous call for a js file 中为真

python - Tweepy 对于大型 Twitter 帐户来说速度很慢

javascript - 纯函数可以返回 Symbol 吗?

javascript - 根据订购的总单位设置单位价格

c++ - 是否可以将具有不同签名的 lambda 存储在 std::vector 中并在函数中执行它们(及其各自的参数)?

javascript - 找到所有链接并用它们的 href 值替换它们