我有一个方法isElementDisplayed
,里面有element.isDisplayed
来电。
为什么isDisplayed
在返回布尔值时返回No element found
?
isElementDisplayed(element: ElementFinder) {
return element.isDisplayed();
}
答案 0 :(得分:1)
isDisplayed()会检查元素是否可见,但您需要检查DOM中是否存在元素,使用isElementPresent()
或isPresent()
:
df['short_str'] = df['long_str'].str.slice(0,3)
另见:
答案 1 :(得分:0)
异常是由find元素抛出的。使用try& catch块返回false。
try{
return element.isDisplayed();
}
catch (Exception e)
{
return false;
// e.getMessage(); // you can console the exception message if required
}
答案 2 :(得分:0)
您应该尝试使用全局方法并在需要的地方调用它。像这样:
public static boolean ElementVisible(By element, WebDriver driver) {
// Maximum wait time is 60 seconds
int maxAttempts = 2;
long sleepTimeInMillisForEachIteration = 500;
for (int counter = 0; counter <= maxAttempts; counter++) {
try {
driver.findElement(element);
return true;
} catch (NoSuchElementException | ElementNotVisibleException e) {
if (counter == maxAttempts) {
return false;
}
try {
Thread.sleep(sleepTimeInMillisForEachIteration);
continue;
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
return false;
}
所以这里它将与元素交互,如果它是可见的或显示,否则它将处理异常并返回false。