最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

节点相当于ExpectedConditions.or的等待许多因素之一

运维笔记admin17浏览0评论

节点相当于ExpectedConditions.or的等待许多因素之一

节点相当于ExpectedConditions.or的等待许多因素之一

使用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。

发布评论

评论列表(0)

  1. 暂无评论