Selenium:捕获可点击元素出现的 NoSuchElementException 是否有用?
Selenium: Does it useful to catch NoSuchElementException appears for a clickable element?
我们为什么要抓NoSuchElementException
?当我们只验证特定页面中元素的存在而不对其执行任何操作时,捕获异常是有意义的。我们可以捕获此异常并记录一条自定义消息,如 "Element not found"
当我们要单击一个元素时,如果在页面中找不到它,selenium 会抛出 NoSuchElementException
。捕获此异常而不是让它停止测试并使测试用例失败有什么用?
注意:我后面的步骤都依赖于这个点击步骤。
异常有两种类型:
1.Checked 例外情况
2.Unchecked 例外情况
检查异常只在编译时检查,这些应该由程序员处理。如果没有发生编译时错误,编译器将在编译时检查这些异常是否被处理。一些已检查的异常是 IOException、FileNotFoundExpection 等
未经检查的异常:
编译器在编译时不检查未经检查的异常。由 RuntimeException class 扩展的异常都是未经检查的异常。一些未经检查的异常是 AritmeticException、NullPointerException 等。在 selenium 中,我们看到未经检查的异常,例如 NoSuchElementException、StaleElementReferenceException、NoSuchWindowException、TimeoutException 等
总之,必须捕获Checked异常。 RuntimeException,也叫unchecked exception,不应该被捕获
可以在
上找到更多信息
http://toolsqa.com/selenium-webdriver/exception-handling-selenium-webdriver/
http://www.seleniumeasy.com/java-tutorials/exception-handling-in-selenium-webdriver-using-java-examples
捕获异常的一个原因是提供更多相关的测试失败输出。例如,如果在 20-30 div 的页面中找不到 div
元素,导致选择器与特定的 div 不匹配,您可以保留异常未被一般错误消息捕获,或者您可以捕获它并抛出带有错误消息 "navbar is missing".
的不同异常
如果从一般错误消息中可以清楚地看出出了什么问题,或者您有一条解释它的测试失败消息,则没有理由去捕获它。
捕获此异常的另一个原因是它是跳过代码的一部分(跳过此测试 if/unless)。所以你寻找一个元素,如果它存在你继续测试,如果它不存在 - 你跳过它。
可能还有其他原因,但这是两个常见的原因。
我们为什么要抓NoSuchElementException
?当我们只验证特定页面中元素的存在而不对其执行任何操作时,捕获异常是有意义的。我们可以捕获此异常并记录一条自定义消息,如 "Element not found"
当我们要单击一个元素时,如果在页面中找不到它,selenium 会抛出 NoSuchElementException
。捕获此异常而不是让它停止测试并使测试用例失败有什么用?
注意:我后面的步骤都依赖于这个点击步骤。
异常有两种类型:
1.Checked 例外情况
2.Unchecked 例外情况
检查异常只在编译时检查,这些应该由程序员处理。如果没有发生编译时错误,编译器将在编译时检查这些异常是否被处理。一些已检查的异常是 IOException、FileNotFoundExpection 等
未经检查的异常: 编译器在编译时不检查未经检查的异常。由 RuntimeException class 扩展的异常都是未经检查的异常。一些未经检查的异常是 AritmeticException、NullPointerException 等。在 selenium 中,我们看到未经检查的异常,例如 NoSuchElementException、StaleElementReferenceException、NoSuchWindowException、TimeoutException 等
总之,必须捕获Checked异常。 RuntimeException,也叫unchecked exception,不应该被捕获
可以在
上找到更多信息http://toolsqa.com/selenium-webdriver/exception-handling-selenium-webdriver/ http://www.seleniumeasy.com/java-tutorials/exception-handling-in-selenium-webdriver-using-java-examples
捕获异常的一个原因是提供更多相关的测试失败输出。例如,如果在 20-30 div 的页面中找不到 div
元素,导致选择器与特定的 div 不匹配,您可以保留异常未被一般错误消息捕获,或者您可以捕获它并抛出带有错误消息 "navbar is missing".
如果从一般错误消息中可以清楚地看出出了什么问题,或者您有一条解释它的测试失败消息,则没有理由去捕获它。
捕获此异常的另一个原因是它是跳过代码的一部分(跳过此测试 if/unless)。所以你寻找一个元素,如果它存在你继续测试,如果它不存在 - 你跳过它。
可能还有其他原因,但这是两个常见的原因。