我正在尝试创建一个函数来捕获org.openqa.selenium.NoSuchElementException,这是我在scala中的实现:
def doesElementExists() = {
try {
//as long as isDisplayed() returns a boolean value, it means the element exists in the html code
seleniumElement.isDisplayed()
true
} catch {
case element_not_found_exception: org.openqa.selenium.NoSuchElementException => {
false
}
}
}
然而,一旦我检查了一个不存在的元素,我希望该函数返回false,它就会被吹掉然后扔掉
org.openqa.selenium.NoSuchElementException,
: Unable to locate element: {"method":"id","selector":"nonexistent-element"};
我想知道为什么catch块没有处理异常?
答案 0 :(得分:0)
IsDisplayed
是已找到的元素的属性。你在做什么基本上就是这个(C#代码):
var element = driver.FindById("nonexistent-element"); //<---This is what throws NoSuchElementException
try
{
var displayed = element.IsDisplayed;
}
catch(NoSuchElementException)
{
}
为了达到你想要的效果,你的doesElementExists
函数应该将定位器作为参数,并围绕查找元素包装try-catch语句。