编写此代码是为了在控制台中报告错误,如果在页面上找不到WebElement
。它尝试阻止失败,但没有抓住。
我尝试了不同的调整和技巧,但它不起作用,请分享我错过的内容:
代码:
public class GetElement extends TestBase{
WebDriverWait wdw = new WebDriverWait(driver, 10);
public WebElement getElement(WebElement element) {
try {
System.out.println("\n" + "==============" + "\n"
+ "inside try of gE" + "\n" + "===================");
return wdw.until(ExpectedConditions.elementToBeClickable(element));
} catch (NoSuchElementException | TimeoutException ex) {
System.out.println("\n" + "==============" + "\n"
+ element.getText()
+ " Element not or wasnt clickable found on page" + "\n"
+ driver.getCurrentUrl() + "\n" + "===================");
}
System.out.println("\n" + "==============" + "\n"
+ "Element will be returned as null"+ "\n" + "===================");
return null;
}
}
此处TestBase
初始化WebDriver
我经常遇到的例外情况(通常是因为我也抽出时间但是我增加了时间):
org.openqa.selenium.NoSuchElementException: no such element
(Session info: chrome=38.0.2125.111)
(Driver info: chromedriver=2.9.248315,platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 137 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'
答案 0 :(得分:0)
几种可能性。
抛出的异常是org.openqa.selenium.NoSuchElementException
。由于NoSuchElementException
是一个相当常见的名称,因此我怀疑您的代码NoSuchElementException
不是来自您的org.openqa.selenium
包。
异常从try块外部抛出。
如果仍然无法找到它的位置,请添加一个catch块以捕获所有Exception
,然后查看是否在try块中正确触发了异常。
答案 1 :(得分:0)
亚历克斯说的是对的,你的捕获区块来自java.util.NoSuchElementException
- 来自,但你必须真正得到一个
org.openqa.selenium.NoSuchElementException.
试试这个catch块:
catch(org.openqa.selenium.NoSuchElementException e| TimeoutException ex){