官方网站下载12306域名怎么用到自己做的网站
2026/1/2 18:34:51 网站建设 项目流程
官方网站下载12306,域名怎么用到自己做的网站,一家专做特卖的网站,镇江发布通知以下为作者观点#xff1a; 开发人员在编写代码时总是会考虑到不同的应用场景#xff0c;但也可能会出现实现效果不如预期的情况。同样的原则也适用于测试代码#xff0c;编写测试代码的主要目的是测试现有产品的功能、发现错误并使产品100%无错误。 有句话说得好#xf…以下为作者观点开发人员在编写代码时总是会考虑到不同的应用场景但也可能会出现实现效果不如预期的情况。同样的原则也适用于测试代码编写测试代码的主要目的是测试现有产品的功能、发现错误并使产品100%无错误。有句话说得好“真相总是比小说更离奇”而在执行 Selenium 测试自动化时你会看到很多 “离奇的事情”。执行测试代码时遇到的这些事情或场景可能不是很常见但测试实现应该足够强大以处理此类场景。这些场景被恰当地称为异常在使用 Selenium 进行自动化浏览器测试时您会遇到许多此类异常。Selenium 异常广泛用于处理错误场景和避免 Web 应用程序故障。尽管所有Selenium WebDriver代码中都可能发生许多 Selenium 异常但有些 Selenium 异常是该框架支持的编程语言如 Java、C#、Python 等特有的。本文涵盖了常见的Selenium异常以及特定语言的异常希望在你遇到代码异常时有所帮助对执行自动化浏览器测试相关场景时经常使用的Selenium异常情况有一个全面的了解。一、Selenium 异常简介异常也称为故障是程序执行过程中发生的未出现的事件。当异常发生时正常的程序执行会停止并执行相应的异常处理程序。如果没有异常处理程序来处理该特定异常程序将返回到引发异常的调用函数最终导致程序终止。由于 Selenium 测试自动化是在不同的目标平台、设备和Web浏览器上执行的测试代码的行为可能因浏览器类型或浏览器版本而异。例如某些属性可能是浏览器特定的并且如果执行自动浏览器测试的浏览器中不存在特定属性则抛出异常。通用属性名称也可以是特定于浏览器的如果目标浏览器上不存在相同的属性则可能会导致 Selenium 异常例如 NoSuchAttributeException。正确处理异常当然很重要因为未处理的异常可能会导致程序失败最终影响产品体验。异常对象包含有关异常类型、调用堆栈和其他有用信息的信息这些信息将有助于调试并使代码更加万无一失。二、Selenium异常的类别Selenium 异常分为两大类已检查异常Checked exceptions和未检查异常Unchecked exceptions。这些异常根据捕获异常的时间即编译时或运行时进行分类。A. 检查异常Selenium测试自动化中的检查异常是在测试代码实现过程中处理的例如 NoSuchAttributeException等检查异常的处理发生在编译时本身。程序。如果某些方法会抛出检查异常最好定义一个处理程序来处理该异常。B. 未经检查的异常Selenium 测试自动化中的未检查异常在运行时发生并且可能比检查异常产生更严重的影响。例如 ElementNotVisibleException、MoveTargetOutOfBoundsException 等。Java中的异常可以被检查或取消检查而在C中所有异常都是未检查的。在自动化浏览器测试相关场景中通常会遇到未经检查的异常因为测试跨越不同的Web浏览器和操作系统组合和版本。三、常见的Selenium 异常在本地或远程 Selenium 网格上执行自动化浏览器测试时你会遇到不同类型的异常。一些 Selenium 异常特定于用于编写Selenium测试自动化场景的编程语言。以下是所有Selenium WebDriver代码中可能发生的一些常见Selenium异常1. ElementClickInterceptedException元素点击拦截异常由于接收Click命令的元素以某种方式隐藏因此无法正确执行Element Click命令。2. ElementNotInteractableException元素不可交互异常即使目标 Web 元素存在于 DOM 上但与该元素的交互将命中另一个 Web 元素时也会引发“ElementNotInteractableException”Selenium 异常。3. ElementNotSelectableException元素不可选异常当目标元素存在于 DOM 上但由于该元素不可选择而无法与之交互时会发生此 Selenium 异常。例如与 script 元素交互时会抛出此异常。4. ElementNotVisibleException元素不可见异常最常见的 Selenium 异常类型即使 Web 元素存在但不可见时也会抛出该异常。由于该元素不可见因此不可能与该元素进行任何交互。这种情况在 Selenium 测试自动化中经常遇到其中尝试对 Web 元素例如按钮、标签等进行相关操作单击、读取等但该元素在视图中隐藏。另一个示例是 HTML 中定义的隐藏类型的元素。5. ErrorInResponseException当服务器端发生某些问题或错误时会抛出此 Selenium 异常。当使用错误的用户名和访问密钥组合来访问基于云的远程 Selenium Grid、与远程 Web 驱动程序服务器通信或与 Firefox 扩展或 Chrome 插件通信时可能会发生这种情况。服务器端错误的一些常见响应代码如下401 — Unauthorized未授权400 — BadRequest错误请求500 — InternalServerError内部服务器错误409 — Conflict冲突403 — Forbidden禁止405 — MethodNotAllowed方法不允许6. ImeActivationFailedException输入法引擎激活失败异常如果IME输入法引擎由于某种原因激活失败则抛出此异常。处理此问题的理想方法是检查计算机上是否有 IME 支持。7. ImeNotAvailableException输入法不可用异常如果 IME输入法引擎不可用则抛出此 Selenium 异常。如果测试机器上不提供 IME 支持则每个 IME 相关方法都会引发 ImeNotAvailableException。8. InsecureCertificateException不安全证书异常使用过期或无效的 TLS 证书导致用户代理发出证书警告。9. NoSuchFrameException当要切换到的框架不存在时就会抛出 NoSuchFrameException Selenium 异常。为避免此类 Selenium 异常建议在自动浏览器测试代码中添加有关切换到框架模式的正确性检查。检查使用的框架索引是否正确。可添加几毫秒ms的额外等待以确保框架加载完成。10. NoSuchWindowException当切换到的窗口目标不存在时抛出此异常。这些情况可以通过使用 window_handles 来处理以获得当前的活动窗口集。窗口句柄可用于在其上执行适当的操作。11. RemoteDriverServerException远程驱动服务器异常当浏览器功能中的错误组合/字段导致服务器不发送响应时抛出此异常。为了避免此类 Selenium 异常从平台 浏览器、平台 浏览器 浏览器版本等有效组合的角度彻底检查 Selenium 浏览器功能非常重要。12. ScreenshotException截屏异常顾名思义当无法捕获屏幕时会抛出此 Selenium 异常。这种情况很可能出现在用户输入敏感信息例如用户名、密码、银行信息等的网页/Web 应用程序中。在这种情况下由于屏幕截图限制而无法捕获屏幕。在这里屏幕截图限制会阻止屏幕被捕获或记录。13. SessionNotCreatedException当新会话创建不成功时会出现此异常。14. InvalidArgumentException无效参数异常当传递的参数无效或格式错误时将引发 InvalidArgumentException 异常。更好的做法是在 Selenium 测试自动化代码中使用适当的等待以毫秒为单位来验证被测网页是否已加载。15. InvalidCookieDomainException当尝试为与当前 URL 不同的 URL/域添加 cookie 时会引发此 Selenium 异常。要处理此异常应该导航到必须添加 cookie 的正确 URL。16. InvalidCooperativesException无效坐标异常当向交互操作提供不正确的坐标时会引发此特定异常。这也意味着依赖于鼠标位置的操作例如单击之前没有移动操作或者为移动操作提供了无效的坐标。17. InvalidElementStateException无效元素状态异常当由于元素未处于有效状态或元素未启用执行该操作而无法完成命令时将引发此 Selenium 异常。如果在不可编辑且不可重置的 Web 元素上尝试执行诸如清除元素之类的操作则可能会导致这种情况。要在 Selenium 测试自动化中处理此类异常建议先等待该元素启用然后再对其执行所需的操作。18. InvalidSelectorException无效选择器异常如果在不同版本之间更改了选择器名称就可能意外使用无效或不正确的选择器来定位 Web 元素。如果用于查找 Web 元素的选择器没有返回 WebElement就会产生 InvalidSelectorException 异常。这种情况通常发生在选择器是 XPath 表达式且 XPath 无效的情况下。这将导致无法找到目标网页元素。19. InvalidSessionIdException无效会话标识异常如果 Selenium 测试自动化实现中使用的会话 ID 无效即不在当前活动会话列表中则会抛出此异常。如果会话不活动或从未存在过就会发生这种情况。20. InvalidSwitchToTargetException无效目标切换异常如果切换到的框架或窗口目标无效则会出现此 Selenium 异常。在切换到该框架之前使用“检查工具”验证目标框架的 XPath 非常重要。21. JavascriptException当执行 JavaScript 代码出现问题时抛出此异常。22. NoAlertPresentException无警报显示异常当切换到屏幕上尚未出现的警报时会发生该异常。处理警报的理想方法是检查警报是否存在然后调用 Alert() 类上所需的操作。23. MoveTargetOutOfBoundsException移动目标超出边界异常如果提供给 ActionChains() 移动方法的目标超出范围即无效或在文档/网页之外就会出现 Selenium 异常。在调用 ActionChains() 类的 move 方法之前应始终检查我们试图移动的位置只有当该位置出现在屏幕上时才执行相同的操作。24. NoSuchAttributeException无属性异常这是在进行自动化浏览器测试时一定会遇到的少数 Selenium 异常之一。如果无法找到元素的属性就会抛出 NoSuchAttributeException 异常。要处理此异常应针对执行测试的浏览器检查属性是否存在。不同浏览器中同一属性的不同属性名可能各不相同如果处理效率低下就会导致此异常。避免发生此异常的另一种方法是根据 DOM 上元素的新细节更改属性。25. NoSuchCookieException无Cookie异常当当前浏览上下文活动文档的关联 Cookie 中不存在与给定路径名匹配的 Cookie 时就会出现 Selenium 异常。26. NoSuchElementException无元素异常当用于访问元素的定位器无效或试图对一个不在 DOM 中的元素执行操作时Selenium 会抛出 NoSuchElementException 异常。在这两种情况下都找不到元素。要处理 Selenium 异常应检查选择器是否正确如果正确则需要额外等待以确保 WebElement 的出现。27. StaleElementReferenceException陈旧元素引用异常当引用的元素已不在页面的 DOM 中时会出现 Selenium 异常。简单地说该元素已经衰减或过时。导致这种特殊 Selenium 异常的一些可能原因有元素可能在一个被刷新的 iFrame 中。页面可能已经刷新要访问的元素不再是当前页面的一部分。该元素可能已被移除并重新添加到屏幕上因为该元素已被定位。处理此异常的一个可行解决方案是使用动态 XPath 在循环中查找所需元素并在找到元素后中断循环。28. TimeoutException超时异常若当前正在执行的命令没有在预期时间内完成时就会出现超时异常。处理这种异常的一个可行办法是增加命令完成执行的等待时间。不过应该为等待时间选择一个理想值否则可能会延迟进一步执行。29. UnableToSetCookieException无法设置Cookie异常当Selenium WebDriver 无法设置 cookie 时会出现这种 Selenium 异常。可以添加额外的等待时间以便为域加载 cookie。30. UnexpectedAlertPresentException 意外警报出现异常当出现意外警报时发生。发生此异常的一个常见原因是页面上出现模式窗口/弹出窗口导致 Selenium WebDriver 命令被阻止。31. UnexpectedTagNameException标签名称异常当支持类无法找到预期的 Web 元素时会发生此 Selenium 异常。32. UnknownMethodException 未知方法异常这是常见的 Selenium 异常之一当请求的命令能够匹配已知 URL 但无法匹配该 URL 的方法时就会发生。要处理此异常应检查与 URL 一起传递的方法是否有效。33. WebDriverException这是由于 Selenium WebDriver 和目标 Web 浏览器的绑定不兼容而发生的基本 WebDriver 异常。要处理此异常应该下载与相应 Web 浏览器兼容的 Selenium WebDriver 库。四、Java中的Selenium异常有些Selenium异常是特定编程语言的测试自动化所特有的。除了上面介绍的 Selenium 中的常见异常外下面介绍 Java 语言特有的 Selenium 异常34. ConnectionClosedException连接关闭异常当与 Selenium WebDriver 的连接丢失时抛出此异常。35. ErrorHandler.UnknownServerException当服务器返回错误而没有堆栈跟踪时它用作占位符。36. JsonException当你能获取会话功能但却没有创建会话时会抛出此异常。37. NoSuchSessionException在 WebDriver.quit() 执行后调用命令时会抛出此 Selenium 异常。由于 WebDriver 实例已不存在对该特定 WebDriver 实例的任何操作都会返回此异常。38. NotFoundException当DOM上不存在元素时会发生此异常。39. ScriptTimeoutException当异步脚本的执行没有在给定的时间限制内完成时抛出。40. UnhandledAlertException未处理警报异常Selenium 异常是 WebDriver 异常的子类。当 WebDriver 无法执行警报操作即使存在警报时就会抛出该异常。41. UnreachableBrowserException无法访问浏览器异常UnreachableBrowserException 表示与自动化测试代码控制的 Web 浏览器通信时出现问题。这也可能是由于与 Selenium 服务器通信的问题造成的。如果远程 Selenium WebDriver 或 Selenium 网格的服务器地址无效则可能会发生这种情况。浏览器实例也有可能在 Selenium 测试自动化周期中终止。42. UnsupportedCommandException不支持的异常命令当远程 Selenium WebDriver 发送的命令无效时抛出此异常。43. NoSuchContextException该异常发生在移动测试中由 ContextAware.context(String) 抛出。44. NotConnectedException当在规定的时间段内尝试连接后尝试连接特定主机或远程 Selenium 网格失败时将引发此 Selenium 异常。45. SeleniumException顾名思义当 Selenium 命令失败时会抛出 Selenium 异常。46. UnableToCreateProfileException无法创建配置文件异常当要执行 Selenium 测试自动化的浏览器使用某些自定义配置文件打开但 WebDriver 或浏览器在支持该配置文件时出现问题时会发生 UnableToCreateProfileException。要处理此异常建议检查已安装的 Selenium WebDriver 版本以及 Web 浏览器支持的配置文件。47. UrlChecker.TimeoutException当浏览器在尝试一段时间后无法打开被测 URL 时会抛出此异常。要处理此 Selenium 异常在尝试在浏览器中打开正在测试中之前必须检查 URL 的正确性。五、C#中的Selenium异常C# 特有的Selenium异常有48. DriverServiceNotFoundException驱动程序服务未找到异常当执行自动浏览器测试的元素不可见时将引发 DriverServiceNotFoundException 类下的异常。要处理此异常可以等待页面完全加载在确认 Web 元素可见后再执行 Selenium WebDriver 命令。49. WebDriverTimeoutExceptionWebDriverTimeoutException 类表示执行操作时发生错误时引发的异常。50. XPathLookupException当XPath查找过程中发生错误时抛出的Selenium异常。六、处理Selenium异常处理 Selenium 异常的方式因编程语言而异。不过最重要的一点是Selenium异常应该被处理因为异常提供了极其重要的信息。以下是常用编程语言处理 Selenium 异常的简要要点Python如果你使用Python进行浏览器自动测试异常类可在selenium.common.exception中找到在使用该包的任何命令之前都应导入。异常使用 try…except 块来处理其中 try 块可让你测试代码是否出错except 块可帮助你处理错误而可选的 finally 块无论 try 块是否引发错误都会被执行。Java Selenium 异常在 Java 中使用 try-catch 方法处理。try 代码块是代码块的开始catch 代码块包含解决异常的执行。catch 块位于 try 块的末尾。与 Python 一样您也可以使用 finally 关键字创建一个代码块无论异常是否发生该代码块都会被执行。C# 与 Java 类似Selenium 也使用 try-catch 语句处理异常。try 块包含可能导致异常的代码。try 块下的代码会被执行直到代码成功执行或异常抛出。catch 块包含不同异常的处理程序。总而言之异常在开发中很常见但必须小心处理。了解不同的 Selenium 异常非常重要因为这有助于开发更强大的自动化浏览器测试脚本。Selenium 测试自动化中的异常处理有助于识别特定于浏览器/平台/设备的跨浏览器兼容性问题。你使用过哪些处理 Selenium 异常的机制请在评论部分留下你的经验…感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询