Selenium常见异常解析及解决⽅案⽰范
pycharm中导⼊selenium报错
现象: pycharm中输⼊from selenium import webdriver, selenium标红
原因1: pycharm使⽤的虚拟环境中没有安装selenium,
解决⽅法: 在pycharm中通过设置或terminal⾯板重新安装selenium
原因2: 当前项⽬下有selenium.py,和系统包名冲突导致,
解决⽅法,重命名这个⽂件
驱动及本地服务类异常
未到响应的浏览器驱动
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
原因: 查不到对应的浏览器驱动
解决⽅法: 下载浏览器对应版本的chromedriver或geckodrivergeckodriver
放到脚本当前⽂件夹下或将路径配置到环境变量中, 或放到Python⽬录的Scripts下(⼀般情况下Python的Scripts⽬录在环境变量中), 或使⽤浏览器选项options指定驱动路径
未到浏览器
WebDriverException: Message Can not connect to the Service chromedriver
org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary
原因: 在默认路径下未到Firefox浏览器
解决⽅法: 重新安装Firefox浏览器
驱动和浏览器不匹配
SessionNotCreatedException: Message: session not created:
this version of ChromeDriver only supports Chrome version 76
原因: 当前使⽤chromedriver只⽀持Chrome76版本
解决⽅法: 查看本地Chrome浏览器的版本, 下载对应的chromedriver
驱动被防⽕墙拦截
WebDr iverException: Message: Can not connect to the
原因: 被防⽕墙拦截
解决⽅法: 防⽕墙设置允许
连接不上chromedriver服务
WebDriverException: Message: Can not connect ot the Service chromedriver
原因: 脚本通过127.0.0.1这个ip访问本地chromedriver服务, hosts中未配置 127.0.0.1指向localhost
python安装教程非常详细解决办法: 配置本地hosts, 添加:127.0.0.1 localhost
6.RemoteDriverServerException: 远程服务器异常, 解决⽅法: 确认webdriver.Remote()中的远程Webdriver服务是否OK
7. ErrorInResponseException: Webdriver服务器响应异常, 解决⽅法, 根据具体报错信息分析
不到类异常: 定位/获取属性/切换警告框,Frame, 窗⼝
1. NoSuchElementException: 不到元素, 解决⽅法: 前⾯加上sleep等待后重试,或换⼀种定位⽅式
2. NoSuchAttributeException: 元素没有这个属性, 解决⽅法: 确认定位到的元素是否⽬标元素, 检查属性拼写
3. NoAlertPresentException:没有到alert弹出框, 解决⽅法: 观察页⾯,查看是否有弹框出现, 加上等待或作为偶现元素处
4. NoSuchFrameException:没有到指定的frame或iframe, 解决⽅法: 查看拼写或切换使⽤frame的id/name/index/定位到
的frame
5. NoSuchWindowException: 没到窗⼝句柄指定的窗⼝, 解决⽅法: 查看使⽤的窗⼝句柄变量拼写
6. UnexpectedAlertPresentException: 出现了弹框⽽未处理, 解决⽅法: 切换到警告框并处理, 如果偶现,使⽤pt处理
偶现弹框
7. InvalidSwitchToTargetException: 切换到指定frame或窗⼝报错, 解决⽅法: 查看相应的frame或窗⼝是否能定位到
8. UnexpectedTagNameException: 使⽤Tag Name不合法, 解决⽅法: 检查拼写或使⽤css selector/xpath
9. TimeoutException:查元素或操作超时, 解决⽅法, 稍后重试
元素操作异常类: 隐藏/不可操作状态
1. ElementNotVisibleException:元素不可见异常, selenium不能直接操作隐藏元素, 解决⽅法: 加上等待, 使⽤正常步骤使
元素显⽰, 或使⽤js到该元素的祖先节点的隐藏属性(通常为styple="display: none"), 移除该属性然后定位操作.
2. StaleElementReferenceException: 陈旧元素引⽤异常, 页⾯刷新或跳转后使⽤了之前定位到的元素, 解决⽅法: 重新定位
元素并操作
3. InvalidElementStateException: 元素状态异常元素只读/不可点击等, 解决⽅法, 等待或使⽤js移除元素readonly/disable等
限制属性后操作
4. ElementNotSelectableException:元素不可被选中, 解决⽅法: 确认原始是否为select标签, 是否禁⽤
5. InvalidSelectorException: 使⽤的定位⽅法不⽀持或xpath语法错误, 未返回元素, 解决⽅法: 检查使⽤的元素定位器是否拆
包, 使⽤find_element()⽅法是, 第⼀个参数为'class name', 'link text', 'particial link text' 'css selector', 空格分开, ⾮下划线连接, 建议使⽤By.CLASS_NAME的⽅式. 使⽤chrome开发着⼯具+Ctrl+F搜索验证⾃⼰写的xpath语法.
6. MoveTargetOutOfBoundsException: 使⽤ActionChains的move⽅法时移动到的位置不合适
Cookie存取相关异常
1. InvalidCookieDomainException: Cookie相应的域名⽆效
2. UnableToSetCookieException: 设置Cookie异常
IME输⼊法引擎异常
1. ImeNotAvailableException: 服务器不⽀持输⼊法
2. ImeActivationFailedException: 输⼊法激活异常
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。