SUM*_*SUM 7 javascript selenium-webdriver
driver.wait(until.elementIsPresent(By.css(".popup-backdrop fade")), 15000);
Run Code Online (Sandbox Code Playgroud)
我该如何做相反的事情?我想等到“.popup-backdrop fade”覆盖消失,然后再单击一个元素。
我正在使用 Selenium-webdriver(使用 Javascript 而不是使用 Java 或 Python 或 C#)
在代码源中没有找到负等待。一个解决方案是实现你自己的条件:
var webdriver = require('selenium-webdriver');
var until = webdriver.until;
var By = webdriver.By;
until.elementIsNotPresent = function elementIsNotPresent(locator) {
return new until.Condition('for no element to be located ' + locator, function(driver) {
return driver.findElements(locator).then(function(elements) {
return elements.length == 0;
});
});
};
driver.wait(until.elementIsNotPresent(By.css(".popup-backdrop fade")), 15000);
Run Code Online (Sandbox Code Playgroud)
小智 5
正如对已接受问题的评论所示,until.Condition 不是 Selenium 4 中的有效构造函数。相反,可以这样做:
const { By, until, Condition } = require('selenium-webdriver');
until.elementIsNotPresent = function elementIsNotPresent(locator) {
return new Condition('for no element to be located ' + locator, function(driver) {
return driver.findElements(locator).then(function(elements) {
return elements.length === 0;
});
});
};
Run Code Online (Sandbox Code Playgroud)
使用条件的参考可以在这里找到: https: //github.com/seleniumhq/selenium/issues/2755
| 归档时间: |
|
| 查看次数: |
6481 次 |
| 最近记录: |