异常处理 Selenium Webdriver(类型)
什么是例外?
An 例外 是程序执行时发生的错误。然而,在运行程序时,编程语言会产生异常,应处理该异常以避免程序崩溃。
异常表示虽然该事件可能发生,但这种类型的事件很少发生。当方法无法处理异常时,它将被抛出到其调用者函数。
异常类型 Selenium 网络驱动程序
1. ElementNotVisibleException: 这类 Selenium 当 DOM 中现有元素的功能设置为隐藏时会发生异常。
2. ElementNotSelectableException: 本篇 Selenium 当元素出现在 DOM,但您可以选择。因此无法进行交互。
3. 无SuchElementException: 如果找不到元素,则会发生此异常。
4. 无SuchFrameException: 如果要切换到的框架目标不存在,则会发生此异常。
5. 无AlertPresentException: 当您切换到无显示警报时会发生此异常。
6. 异常: 如果要切换的窗口目标不存在,则会发生此异常。
7. StaleElementReferenceException: 本篇 Selenium 当 Web 元素与当前 DOM 分离时会发生异常。
8. SessionNotFoundException: 退出浏览器后,WebDriver 仍在运行。
9. 超时异常: 当没有足够的时间完成命令时抛出。例如,在指定时间内未找到搜索的元素。
10. WebDriverException: 当您关闭浏览器后 WebDriver 立即运行时,会发生此异常。
11. 连接关闭异常: 当驱动程序断开连接时,会发生此类异常。
12. ElementClickInterceptedException: 由于接收事件的元素隐藏了请求点击的元素,因此命令可能无法完成。
13. ElementNotInteractableException: 本篇 Selenium 当任何元素出现在 DOM 中时,都会抛出异常。但是,无法与这样的元素进行交互。
14. ErrorInResponseException: 这是在与 Firefox 扩展或远程驱动程序服务器。
15. 错误处理程序.未知服务器异常: 如果服务器返回错误但没有堆栈信息,则使用异常作为占位符。 trace.
16. ImeActivationFailedException: 当 IME 引擎激活失败时,就会出现这种预期。
17. ImeNotAvailableException: 当 IME 支持不可用时会发生这种情况。
18. 不安全证书异常: 导航使用户代理遇到证书警告。这可能是由于 TLS 证书无效或过期造成的。
19. 无效参数异常: 当参数不属于预期类型时就会发生这种情况。
20. InvalidCookieDomainException: 当您尝试在当前域之外的其他域下添加 cookie 时,就会发生这种情况。 URL.
21. 无效坐标异常: 这种类型的异常与无效的交互操作相匹配。
22. InvalidElementStateException: 当元素无效且命令无法完成时,就会发生这种情况。
23. InvalidSessionIdException: 当给定的会话 ID 未包含在活动会话列表中时,会发生此异常。这意味着会话不存在或处于非活动状态。
24. 无效的 SwitchToTarget例外: 当要切换的框架或窗口目标不存在时,就会发生这种情况。
25. Javascript例外: 执行时出现此问题 Java用户提供的脚本。
26. JsonException: 当您有能力获取会话但会话尚未创建时,就会发生这种情况。
27. 无SuchAttribute异常: 当无法找到元素的属性时,就会发生此类异常。
28。 移动Target越界异常: 如果提供给 ActionChains move() 方法的目标无效,就会发生这种情况。例如,超出文档范围。
29. 无SuchContext异常: ContextAware 进行移动设备测试。
30. NoSuchCookieException: 如果在当前浏览的文档的所有关联 cookie 中均未找到与给定路径名匹配的 cookie,则会发生此异常。
31. 未找到异常: 此异常是 WebDriverException 的子类。当 DOM 上的元素不存在时会发生这种情况。
32. RemoteDriverServerException: 本篇 Selenium 由于所描述的功能不适当,当服务器没有响应时会抛出异常。
33. 屏幕截图异常: 无法捕获屏幕。
34. SessionNotCreatedException: 当无法成功创建新会话时,就会发生这种情况。
35. 无法设置Cookie异常: 如果驱动程序无法设置 cookie,就会发生这种情况。
36. UnexpectedTagNameException: 如果支持类没有按预期获得 Web 元素,则会发生这种情况。
37. 未处理警报异常: 当出现警报但 WebDriver 无法执行警报操作时,就会出现这种预期。
38. UnexpectedAlertPresentException: 当出现意外警报时就会发生这种情况。
39. 未知方法异常: 当请求的命令与已知命令匹配时,会发生此异常。 URL 但是,它与特定方法论不匹配。 URL.
40. 无法访问浏览器异常: 仅当浏览器由于某种原因无法打开或崩溃时才会发生此异常。
41. 不支持的命令异常: 当远程 WebDriver 未按预期发送有效命令时,就会发生这种情况。
如何处理异常 Selenium
这里有一些重要的标准,你可以用它们来处理异常 Selenium WebDriver:
步骤 1)Try-catch
此方法可以捕获异常,它使用 try 和 catch 关键字的组合。try 命令表示块的开始, 摔角 放在try块的末尾,有助于解决异常。
try
{
// Code
} catch (Exception e) {
// Code for Handling exception
}
步骤 2)多个 catch 块
异常有多种类型,单个代码块中可能会出现多个异常。多个 catch 可帮助您使用单独的代码块分别处理每种类型的异常。它可用于两个以上的 catch 块,并且对 catch 块的数量没有限制。
try
{
//Code
} catch (ExceptionType1 e1) {
//Code for Handling Exception 1
} catch (ExceptionType2 e2) {
//Code for Handling Exception 2
}
步骤 3)抛出
当你想产生异常时,Throw 关键字用于抛出异常并在运行时处理它。当你抛出异常而不处理它时,则需要使用 Throw 关键字。
public static void anyFunction() throws Exception{
try {
// write your code here
} Catch (Exception b) {
// Do whatever you want to perform
// Throw the Exception back to the system
throw(b);
}
}
步骤 4)多个例外
您可以在 throws 子句中提及各种异常。
public static void anyFunction() throws ExceptionType1, ExceptionType2{
try {
// write your code here
} catch (ExceptionType1 e1) {
// Code to handle exception 1
} catch (ExceptionType1 e2) {
// Code to handle exception 2
}
步骤 5)最后
Final 关键字用于在 try 块下创建代码块。它是最终代码,可帮助您无论是否发生异常都会执行
try {
//Code
} catch (ExceptionType1 e1) {
//Catch block
} catch (ExceptionType2 e2) {
//Catch block
} catch (ExceptionType3 e3) {
//Catch block
} finally {
//The finally block always executes.
}
显示异常的方法
您还可以使用以下方法显示异常信息:
- printStackTrace ()此函数打印堆栈信息。 trace、异常名称及其他有用描述。
- toString():该函数返回描述异常名称和说明的文本消息。
- getMessage():帮助显示异常的描述。
结语
- 异常是在程序执行时发生的错误。
- Try-catch:这种方法可以捕获异常,它使用了try和catch关键字的组合。
- 多个捕获可帮助您使用单独的代码块分别处理每种类型的异常。
- Throw 关键字用于抛出异常,以便在运行时处理它。
- printStackTrace():此函数打印堆栈信息。 trace、异常名称和其他有用的描述
- toString():该函数返回描述异常名称和说明的文本消息。
- getMessage():有助于显示异常的描述。
