javascript - Selenium:WAITING元素的宽度大于X

标签 javascript node.js selenium selenium-webdriver selenium-chromedriver

我有一个页面进行一些处理并显示进度条。

我想在进度条填充至少 50% 宽度时按取消按钮。

如何创建自定义等待条件?

    driver.findElement(By.id('bar')).then(function (stateEl) {
      // driver.wait(until. ?? By.xpath? 
    }).then(done);

最佳答案

您可以使用显式的 driver.wait 功能,在其中返回 truefalse 值来释放或保留驱动程序。

http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html#wait

你可以这样做:

  driver.wait(function() {
    return Promise.all([
      driver.findElement(progressBarWrapper).getSize(),
      driver.findElement(progressBar).getSize()
    ]).then(function(sizes) {
      return (sizes[0].width / 2) <= sizes[1].width;
    });
  }, timeout);

我假设,您有一个包装器(一个用于进度条的框,其宽度是进度条的最大宽度)和实际的进度条。

关于javascript - Selenium:WAITING元素的宽度大于X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43116098/

相关文章:

javascript - Websockets 在 React JS + Electron NodeJS 应用程序中多次连接

node.js - Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误 : connect ECONNREFUSED 127. 0.0.1:27017

java - Selenium Java 中每个场景的 Chrome 和 Firefox 之间的更改(CUCUMBER、JUnit)

Python Selenium 获取所有 "href"属性

javascript - 在 angularjs get 方法中发送数组

javascript - 如何使用拼接删除数组中每个字符串的第一个字母?

javascript - node-http-proxy,如何将新的查询参数传递给初始请求?

java - UI 测试 - 对排序数据进行断言 (Katalon/Selenium) Java

javascript - 使用 Google Charts API 显示两个图表

javascript - MUI 断点无法识别 "theme.breakpoints.down"