Tha*_*Don 0 selenium node.js selenium-webdriver
使用 Java 驱动程序,我可以在采取操作之前等待几个元素条件之一,如下所示:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.or(
ExpectedConditions.elementToBeClickable(By.id("idNumber1")),
ExpectedConditions.elementToBeClickable(By.id("idNumber2"))
));
Run Code Online (Sandbox Code Playgroud)
例如,wait当列出的其中一个元素可单击时,我们的操作就结束了。
但是,我找不到使用 Node.js 版本的驱动程序来执行此操作的方法。
好的,虽然 Selenium 驱动程序的 Node 版本中没有可用的便捷方法,但我可以ExpectedConditions.or使用Promise.any进行模拟。
let item1 = By.id("idNumber1");
let item2 = By.id("idNumber2");
let result = await Promise.any(
[ driver.wait(until.elementLocated(item1, 5000)),
driver.wait(until.elementLocated(item2, 5000))
]).then((el) => {
if (el.getId() === 'idNumber1') {
return //something specific to item 1;
} else {
return //something specific to item 2;
}
}
);
console.log(result);
Run Code Online (Sandbox Code Playgroud)
同样,要模拟,and您可以使用Promise.all。
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |