1 驱动及本地服务类异常
1 未找到响应的浏览器驱动
原因:查找不到对应的浏览器驱动 解决方法:下载浏览器对应版本的 chromedriver
WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
2 未找到浏览器
原因:在默认路径下未找到 Firefox 浏览器 解决方法:重新安装 Firefox 浏览器
WebDriverException: Message Can not connect to the Service chromedriver
org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary
3 驱动和浏览器不匹配
原因:当前使用 chromedriver 只支持 Chrome76 版本 解决方法:查看本地 Chrome 浏览器的版本, 下载对应的 chromedriver
SessionNotCreatedException: Message: session not created:this version of ChromeDriver>
4 驱动被防火墙拦截
原因:iedriverserver.exe 被防火墙拦截 解决方法:防火墙设置允许
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
WebDriverException: Message: Can not connect ot the Service chromedriver
6 远程服务器异常
解决方法:确认 webdriver.Remote() 中的远程 Webdriver 服务是否 OK
RemoteDriverServerException
7 Webdriver服务器响应异常
解决方法:根据具体报错信息分析
ErrorInResponseException
2 找不到类异常
1 找不到元素
解决方法:前面加上 sleep 等待后重试,或换一种定位方式
NoSuchElementException
2 元素没有这个属性
解决方法:确认定位到的元素是否目标元素, 检查属性拼写
NoSuchAttributeException
3 没有找到alert弹出框
解决方法:观察页面,查看是否有弹框出现, 加上等待或作为偶现元素处理
NoAlertPresentException
4 没有找到指定的frame或iframe
解决方法:查看拼写或切换使用 frame 的 id/name/index/定位到的frame
NoSuchFrameException
5 没找到窗口句柄指定的窗口
解决方法:查看使用的窗口句柄变量拼写
NoSuchWindowException
6 出现了弹框而未处理
解决方法:切换到警告框并处理, 如果偶现,使用 try…except 处理偶现弹框
UnexpectedAlertPresentException
7 切换到指定frame或窗口报错
解决方法:查看相应的 frame 或窗口是否能定位到
InvalidSwitchToTargetException
8 使用Tag Name不合法
解决方法:检查拼写或使用css selector/xpath
UnexpectedTagNameException
9 查找元素或操作超时
解决方法:稍后重试
TimeoutException
3 元素操作异常类: 隐藏/不可操作状态
1 元素不可见异常, selenium不能直接操作隐藏元素
解决方法:加上等待, 使用正常步骤使元素显示, 或使用js找到该元素的祖先节点的隐藏属性(通常为styple=”display: none“), 移除该属性然后定位操作.
ElementNotVisibleException
2 陈旧元素引用异常, 页面刷新或跳转后使用了之前定位到的元素
解决方法:重新定位元素并操作
StaleElementReferenceException
3 元素状态异常 元素只读/不可点击等
解决方法:等待或使用js移除元素readonly/disable等限制属性后操作
InvalidElementStateException
4 元素不可被选中
解决方法:确认原始是否为select标签, 是否禁用
ElementNotSelectableException
5 使用的定位方法不支持或xpath语法错误, 未返回元素
解决方法:检查使用的元素定位器是否拆包, 使用 find_element() 方法时, 第一个参数为’class name‘, ‘link text‘, ‘particial link text‘ ‘css selector‘, 空格分开, 非下划线连接, 建议使用 By.CLASS_NAME 的方式. 使用 chrome 开发者工具 Ctrl+F 搜索验证自己写的xpath语法.
InvalidSelectorException
6 使用ActionChains的move方法时移动到的位置不合适
MoveTargetOutOfBoundsException
4 Cookie存取相关异常
1 Cookie相应的域名无效
InvalidCookieDomainException
2 设置Cookie异常
UnableToSetCookieException
IME输入法引擎异常
1 服务器不支持输入法
ImeNotAvailableException
2 输入法激活异常
ImeActivationFailedException