gpt4 book ai didi

java - Webdriver : ExpectedConditions. invisibilityOf 不起作用。总是抛出异常

转载 作者:行者123 更新时间:2023-11-30 06:25:04 25 4
gpt4 key购买 nike

我正在使用 ExpectedConditions.invisibilityOf 来检查其中一个元素的不可见性,但每次它都会抛出超时异常:

wait.until(ExpectedConditions.invisibilityOf(elementTobeInvisible));

错误消息:

org.openqa.selenium.TimeoutException: Expected condition failed: waiting for invisibility of Proxy element for: DefaultElementLocator 'By.xpath: //button[text()='button text']' (tried for 30 second(s) with 500 MILLISECONDS interval)

我使用 element.isDisplayed() 检查了同一元素的可见性,它正确返回“false”。

最近我从2.53.0升级了selenium

  • 网络驱动程序:3.7.1 或 3.6.0
  • Chrome:62.0.3202.94(官方版本)(64 位)
  • 操作系统:Windows 7

最佳答案

调查了这个问题,看起来是错误的实现:

对于版本2.53.0和3.7.0,隐形方法存在实现差异。

2.53实现:

public static ExpectedCondition<Boolean> invisibilityOfAllElements(final List<WebElement> elements) {
return new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver webDriver) {
Iterator var2 = elements.iterator();

while(var2.hasNext()) {
WebElement element = (WebElement)var2.next();

try {
if (element.isDisplayed()) {
return false;
}
} catch (Exception var5) {
;
}
}

return true;
}

public String toString() {
return "invisibility of all elements " + elements;
}
};
}

观察:查看“catch (Exception var5)”行。在这里,我们将所有内容捕获为异常

<小时/>

用于3.7.1实现

public static ExpectedCondition<Boolean> invisibilityOfAllElements(final List<WebElement> elements) {
return new ExpectedCondition() {
public Boolean apply(WebDriver webDriver) {
return Boolean.valueOf(elements.stream().allMatch((x$0) -> {
return ExpectedConditions.isInvisible(x$0);
}));
}

public String toString() {
return "invisibility of all elements " + elements;
}
};
}


private static boolean isInvisible(WebElement element) {
try {
return !element.isDisplayed();
} catch (StaleElementReferenceException var2) {
return true;
}
}

观察:我们只捕获StaleElementReferenceException,因此在使用该方法时会抛出TimeoutException,但未捕获

关于java - Webdriver : ExpectedConditions. invisibilityOf 不起作用。总是抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com