Selenium:处理可能不存在的元素的异常

时间:2014-12-01 15:36:04

标签: selenium selenium-webdriver

我有一些页面需要查找元素,如果存在,请获取文本。但是我在异常处理方面遇到了一些难题。

我可以使用WebDriverWait:

wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="className"]')))

但是如果这引发异常,我在技术上无法知道它是否发生,因为该元素实际上不存在于页面上,或者是因为其他东西(例如我没有等待足够长的时间或者还有其他一些代码中的错误)。

在我的特定情况下,我已经能够通过使用页面上的一些其他元素的存在来处理这个,以推断我正在寻找的那个元素是否存在。但是,我必然遇到一些我无法使用其他元素作为代理的页面。

有没有办法让我区分由于元素实际上不在页面源中引起的异常与其他原因?

1 个答案:

答案 0 :(得分:1)

您应该指定要捕获的异常,然后在catchblock中执行某些操作,请参阅此处的Java Doc以提供有关异常的更多信息

http://selenium.googlecode.com/git/docs/api/java/index.html

   public void aMethod() {
       try {
        //do someting
               } catch( Exception e ) {
        textLog( "Element not present -------" );
       detailedText( e );
    }

}