“尝试”未能“捕获”阻止失败

时间:2014-11-11 08:21:22

标签: java selenium-webdriver try-catch

编写此代码是为了在控制台中报告错误,如果在页面上找不到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'

2 个答案:

答案 0 :(得分:0)

几种可能性。

  1. 抛出的异常是org.openqa.selenium.NoSuchElementException。由于NoSuchElementException是一个相当常见的名称,因此我怀疑您的代码NoSuchElementException不是来自您的org.openqa.selenium包。

  2. 异常从try块外部抛出。

  3. 如果仍然无法找到它的位置,请添加一个catch块以捕获所有Exception,然后查看是否在try块中正确触发了异常。

答案 1 :(得分:0)

亚历克斯说的是对的,你的捕获区块来自java.util.NoSuchElementException - 来自,但你必须真正得到一个

org.openqa.selenium.NoSuchElementException. 

试试这个catch块:

catch(org.openqa.selenium.NoSuchElementException e| TimeoutException  ex){