- Selenium Webdriver 教程
- 家
- 介绍
- 安装
- 浏览器导航
- 识别单个元素
- 识别多个元素
- 显式等待和隐式等待
- 弹出窗口
- 向后和向前导航
- cookie
- 例外情况
- 动作类
- 创建基本测试
- 形式
- 拖放
- 视窗
- 警报
- 处理链接
- 处理编辑框
- 颜色支持
- 在 Python 中生成 HTML 测试报告
- 从 Excel 读取/写入数据
- 处理复选框
- 在多个浏览器中执行测试
- 无头执行
- 等待支持
- 选择支持
- JavaScript 执行器
- Chrome WebDriver 选项
- 滚动操作
- 捕获屏幕截图
- 右键点击
- 双击
- Selenium Webdriver 有用资源
- Selenium WebDriver - 快速指南
- Selenium WebDriver - 有用的资源
- Selenium WebDriver - 讨论
Selenium Webdriver - 例外
如果发生错误、任何方法失败或发生意外错误,则会引发异常。在Python中,所有异常都是从BaseException类获取的。
Selenium例外情况
下面列出了一些常见的 Selenium 例外情况 -
ElementNotInteractableException - 如果 Web 元素附加到 DOM,但在尝试访问同一个 Web 元素时会访问不同的 Web 元素,则会抛出该异常。
ElementClickInterceptedException - 如果由于覆盖该 Web 元素的另一个 Web 元素接收到单击而无法发生 Web 元素上的单击操作,则抛出该异常。
ElementNotVisibleException - 如果 Web 元素附加到 DOM,但在页面上不可见且无法访问,则会抛出该异常。
ElementNotSelectableException - 如果我们尝试选择不可选择的 Web 元素,则会抛出该异常。
ImeActivationFailedException - 如果我们无法激活 IME 引擎,则会抛出该异常。
ErrorInResponseException - 如果服务器端出现问题,则会抛出该异常。
InsecureCertificateException - 如果用户在导航应用程序时收到证书警告,则会抛出该异常。这是由于 TLS 证书不再有效。
ImeNotAvailableException - 如果不支持 IME 引擎,则会抛出该异常。
InvalidCookieDomainException - 如果我们尝试在当前 URL 之外的不同域下添加 cookie,则会抛出该异常。
InvalidArgumentException - 如果传递给命令的参数不再有效,则抛出该异常。
InvalidElementStateException - 如果我们尝试访问不处于有效状态的 WebElement,则会抛出该异常。
InvalidCoordinatesException - 如果交互的坐标无效,则会抛出该异常。
InvalidSessionIdException - 如果会话 ID 在实时会话组中不可用,则会抛出该异常。因此,给定的会话要么不存在,要么不活动。
InvalidSelectorException - 如果用于标识元素的定位器未产生 Web 元素,则会抛出该异常。
MoveTargetOutOfBoundsException - 如果 ActionChains 方法中给定的目标超出文档的范围,则会抛出该异常。
InvalidSwitchToTargetException - 如果要切换到的框架 ID/名称或窗口句柄 ID 不正确,则会抛出该异常。
NoSuchAttributeException - 如果未检测到元素属性,则抛出该异常。
NoAlertPresentException - 如果我们尝试切换到不存在的警报,则会抛出该异常。
NoSuchFrameException - 如果我们尝试切换到不存在的框架,则会抛出该异常。
StaleElementReferenceException - 如果元素引用当前已过时,则抛出该异常。
NoSuchWindowException - 如果我们尝试切换到不存在的窗口,则会抛出该异常。
UnexpectedAlertPresentException - 如果自动化流程中意外出现警报,则会抛出该异常。
UnableToSetCookieException - 如果网络驱动程序设置 cookie 失败,则会抛出该异常。
UnexpectedTagNameException - 如果支持类未收到预期的 Web 元素,则会抛出该异常。
NoSuchElementException - 如果使用的选择器无法找到 Web 元素,则会抛出该异常。
让我们看一个引发异常的代码示例。
代码实现
Selenium 异常的代码实现如下 -
from selenium import webdriver driver = webdriver.Chrome(executable_path='../drivers/chromedriver') #implicit wait time driver.implicitly_wait(5) #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element with an incorrect link text value l = driver.find_element_by_link_text('Teams') l.click() #driver quit driver.quit()
输出
输出显示消息 - Process with exit code 1 表示上述 Python 代码遇到错误。此外,由于定位器链接文本无法检测到页面上的链接 Teams,因此会引发 NoSuchElementException。