单击特定按钮时 - 我的测试站点将打开模态窗口。
但是打开的模态窗口不同,要么用modal window 1 or modal window 2
两者都有不同的标题,不同的选项和不同的定位器。
现在我应该等到模态window open Either 1 or 2
。
是否可以等到一个模态窗口(WebElement)可见?
我在WebDriverWait方法中搜索过,但所有方法都要等到特定WebElement可见或可点击。
我无法找到更好的方法,等待其中任何一个可见。
你能否建议任何一种方法来解决这种情况?
答案 0 :(得分:9)
您可以or
expected conditions使用
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"));
答案 1 :(得分:0)
要诱导 WebDriverWait 直到任一模态窗口 WebElement 可见,您可以使用 or()
子句如下:
new WebDriverWait(driver, 10).until(ExpectedConditions.or(
ExpectedConditions.visibilityOfElementLocated(By.name("name_modalA_element")),
ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_modalB_element"))
));
使用 cssSelector
,您可以使用逗号字符分隔元素,即 ,
,如下所示:
new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("css_modalA_element, css_modalB_element"));
您可以在以下位置找到一些相关的详细讨论: