使用Java驱动程序,我可以等几个要素条件之一是采取行动,像这样前:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.or(
ExpectedConditions.elementToBeClickable(By.id("idNumber1")),
ExpectedConditions.elementToBeClickable(By.id("idNumber2"))
));
例如,我们wait
会当刚刚上市的元素之一是可点击过。
但是,我无法找到一个方法来做到这一点使用的驱动程序版本的Node.js。
好吧,虽然没有在硒驱动程序的节点版本方便的方法,我可以用ExpectedConditions.or
效仿Promise.race。
let item1 = By.id("idNumber1");
let item2 = By.id("idNumber2");
let result = await Promise.race(
[ 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);
同样,仿效and
你可以使用Promise.all。