Selenium常见异常解析及解决方案示范

 更新时间:2020年04月10日 12:01:38   作者:临渊  
这篇文章主要介绍了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

驱动被防火墙拦截

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

原因: iedriverserver.exe被防火墙拦截

解决方法: 防火墙设置允许

连接不上chromedriver服务

WebDriverException: Message: Can not connect ot the Service chromedriver

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

解决办法: 配置本地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: 出现了弹框而未处理, 解决方法: 切换到警告框并处理, 如果偶现,使用try...except处理偶现弹框
  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: 输入法激活异常

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python实现定时自动关闭的tkinter窗口方法

    Python实现定时自动关闭的tkinter窗口方法

    今天小编就为大家分享一篇Python实现定时自动关闭的tkinter窗口方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例

    Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例

    这篇文章主要介绍了Python3.4实现从HTTP代理网站批量获取代理并筛选的方法,涉及Python网络连接、读取、判断等相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Python中的四种交换数值的方法解析

    Python中的四种交换数值的方法解析

    这篇文章主要介绍了Python中的四种交换数值的方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 解决python 输出到csv 出现多空行的情况

    解决python 输出到csv 出现多空行的情况

    这篇文章主要介绍了解决python 输出到csv 出现多空行的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 使用matlab或python将txt文件转为excel表格

    使用matlab或python将txt文件转为excel表格

    这篇文章主要介绍了matlab或python代码将txt文件转为excel表格,本文通过matlab代码和python 代码给大家详细介绍,需要的朋友可以参考下
    2019-11-11
  • Python测试人员需要掌握的知识

    Python测试人员需要掌握的知识

    很多朋友都想做了个python的测试人员,那么python测试员需要知道的基本知识有哪些呢?跟着小编一起学习下。
    2018-02-02
  • 基于windows下pip安装python模块时报错总结

    基于windows下pip安装python模块时报错总结

    今天小编就为大家分享一篇基于windows下pip安装python模块时报错总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python使用str & repr转换字符串

    python使用str & repr转换字符串

    str() 是将 数值 转成字符串 repr() 是将一个对象 转成字符串 显示 看明白了么:str()是将一个对象转化成str对象 repr()是将一个对象可视化,使用字符串输出,使编程人员看到其的内部结构
    2016-10-10
  • python3学习之Splash的安装与实例教程

    python3学习之Splash的安装与实例教程

    splash 是一个python语言编写的用于配合scrapy解析js的库,下面这篇文章主要给大家介绍了关于python3学习之Splash的安装与使用的一些相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • 浅谈Python数据类型判断及列表脚本操作

    浅谈Python数据类型判断及列表脚本操作

    下面小编就为大家带来一篇浅谈Python数据类型判断及列表脚本操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论