当前位置: 首页 > 面试题库 >

selenium等待任何元素出现

索令
2023-03-14
问题内容

单击特定按钮时-我的测试站点将打开模式窗口。

但是模式窗口的打开是不同的 modal window 1 or modal window 2

两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态window open Either 1 or 2

是否可以等到任一模态窗口(WebElement)可见?

我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定WebElement可见或可单击为止。

我找不到更好的方法来等到任何一个都可见。

您能提出一种解决这种情况的方法吗?


问题答案:

您可以为此使用or
预期条件

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.or(
    ExpectedConditions.visibilityOfElementLocated(By.id("id1")),
    ExpectedConditions.visibilityOfElementLocated(By.id("id2"))
));

或使用cssSelector,

wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#id1, #id2"));


 类似资料:
  • 问题内容: 单击特定按钮时-我的测试站点将打开模式窗口。 但是模式窗口的打开是不同的 两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态。 是否可以等到任一模态窗口(WebElement)可见? 我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定的WebElement可见或可单击为止。 我找不到更好的方法来等到任何一个都可见。 您能提出一种解决这种情况的方法吗

  • 等待元素出现在网页上的最佳方式是什么?我已经读到,我们可以使用隐式等待和功能,如网络驱动程序wait,流利的等待等,最后但不是最不重要的线程.sleep()...我使用最多,但想停止使用。 我的场景: 用户登录到网站…网站检查凭据,并以叠加的形式向用户提供报价(一种弹出窗口,但不是单独的窗口)。我需要验证叠加图上的文字。用户登录和显示覆盖之间存在时间间隔。最好的方法是什么,以便硒只等待元素不可见的

  • 我经常遇到Selenium的问题,脚本崩溃,因为我想访问尚未加载的元素。 目前我是这样做的,我在这些地方之前放了一个,但有时需要更长或更短的时间才能加载元素。 有没有办法等到元素加载完毕,一旦加载,立即继续执行其余的代码?

  • 我正试图从网站上获取预订数据。进入现场后,我必须: 将默认日期范围(起初,网站显示默认日期范围的预订数据)更改为我想要搜索的日期范围 点击刷新按钮 等待网站更新页面上显示的结果。 使用Selenium、Python和BeautifulSoup,当我执行Selenium命令更新日期范围的字段并单击“刷新”按钮时,当代码到达我使用BeautifulSoup提取HTML数据的行时,将提取默认网站日期范围

  • 问题内容: 等待和一起出现很方便。 问题是, 如果 找到元素的唯一可能方法 是 什么,因为它没有id,没有名称,没有唯一的类? 的构造函数仅接受作为参数,而不接受。 我已经设定了时间,所以使用它似乎不是一个好主意,因为我不想为这个元素等待那么长时间。 这是场景: 有一个网页,其中包含许多标签。每个标签都有格式要求。 当不满足格式要求时,动态标签将出现在该标签之后。 由于标签太多,因此我创建了一个通

  • 问题内容: 我试图让Selenium等待页面加载后动态添加到DOM的元素。试过这个: 如果有帮助,这里是: 但是它抛出一个-看起来像期望元素存在,所以这是有缺陷的。这一定是Selenium的面包和黄油,不想重新发明轮子……有人能建议一种替代方法吗,理想情况下不用自己动手做? 问题答案: 需要等待时,您需要异常调用以忽略。 有关更多信息,请参见FluentWait的文档。但是请注意,此条件已在Exp