1 驱动及本地服务类异常


1 未找到响应的浏览器驱动

原因:查找不到对应的浏览器驱动 解决方法:下载浏览器对应版本的 chromedriver

  1. WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

2 未找到浏览器

原因:在默认路径下未找到 Firefox 浏览器 解决方法:重新安装 Firefox 浏览器

  1. WebDriverException: Message Can not connect to the Service chromedriver
  2. org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary

3 驱动和浏览器不匹配

原因:当前使用 chromedriver 只支持 Chrome76 版本 解决方法:查看本地 Chrome 浏览器的版本, 下载对应的 chromedriver

  1. SessionNotCreatedException: Message: session not created:this version of ChromeDriver>

4 驱动被防火墙拦截

原因:iedriverserver.exe 被防火墙拦截 解决方法:防火墙设置允许

  1. WebDriverException: Message: Can not connect to the Service IEDriverServer.exe

5 连接不上chromedriver服务

原因:脚本通过127.0.0.1这个ip访问本地 chromedriver 服务, hosts 中未配置 127.0.0.1指向 localhost 解决办法:配置本地 hosts , 添加:127.0.0.1 localhost

  1. WebDriverException: Message: Can not connect ot the Service chromedriver

6 远程服务器异常

解决方法:确认 webdriver.Remote() 中的远程 Webdriver 服务是否 OK

  1. RemoteDriverServerException

7 Webdriver服务器响应异常

解决方法:根据具体报错信息分析

  1. ErrorInResponseException

2 找不到类异常


1 找不到元素

解决方法:前面加上 sleep 等待后重试,或换一种定位方式

  1. NoSuchElementException

2 元素没有这个属性

解决方法:确认定位到的元素是否目标元素, 检查属性拼写

  1. NoSuchAttributeException

3 没有找到alert弹出框

解决方法:观察页面,查看是否有弹框出现, 加上等待或作为偶现元素处理

  1. NoAlertPresentException

4 没有找到指定的frame或iframe

解决方法:查看拼写或切换使用 frameid/name/index/定位到的frame

  1. NoSuchFrameException

5 没找到窗口句柄指定的窗口

解决方法:查看使用的窗口句柄变量拼写

  1. NoSuchWindowException

6 出现了弹框而未处理

解决方法:切换到警告框并处理, 如果偶现,使用 try…except 处理偶现弹框

  1. UnexpectedAlertPresentException

7 切换到指定frame或窗口报错

解决方法:查看相应的 frame 或窗口是否能定位到

  1. InvalidSwitchToTargetException

8 使用Tag Name不合法

解决方法:检查拼写或使用css selector/xpath

  1. UnexpectedTagNameException

9 查找元素或操作超时

解决方法:稍后重试

  1. TimeoutException

3 元素操作异常类: 隐藏/不可操作状态


1 元素不可见异常, selenium不能直接操作隐藏元素

解决方法:加上等待, 使用正常步骤使元素显示, 或使用js找到该元素的祖先节点的隐藏属性(通常为styple=”display: none“), 移除该属性然后定位操作.

  1. ElementNotVisibleException

2 陈旧元素引用异常, 页面刷新或跳转后使用了之前定位到的元素

解决方法:重新定位元素并操作

  1. StaleElementReferenceException

3 元素状态异常 元素只读/不可点击等

解决方法:等待或使用js移除元素readonly/disable等限制属性后操作

  1. InvalidElementStateException

4 元素不可被选中

解决方法:确认原始是否为select标签, 是否禁用

  1. ElementNotSelectableException

5 使用的定位方法不支持或xpath语法错误, 未返回元素

解决方法:检查使用的元素定位器是否拆包, 使用 find_element() 方法时, 第一个参数为’class name‘, ‘link text‘, ‘particial link text‘ ‘css selector‘, 空格分开, 非下划线连接, 建议使用 By.CLASS_NAME 的方式. 使用 chrome 开发者工具 Ctrl+F 搜索验证自己写的xpath语法.

  1. InvalidSelectorException

6 使用ActionChains的move方法时移动到的位置不合适

  1. MoveTargetOutOfBoundsException

4 Cookie存取相关异常


1 Cookie相应的域名无效

  1. InvalidCookieDomainException

2 设置Cookie异常

  1. UnableToSetCookieException

IME输入法引擎异常


1 服务器不支持输入法

  1. ImeNotAvailableException

2 输入法激活异常

  1. ImeActivationFailedException