Selenium常见异常分析及解决方案

一、pycharm中导入selenium报错

现象: pycharm中输入from selenium import webdriver, selenium标红

原因1: pycharm使用的虚拟环境中没有安装selenium,

解决方法: 在pycharm中通过设置或terminal面板重新安装selenium

原因2: 当前项目下有selenium.py,和系统包名冲突导致,

解决方法,重命名这个文件

 二、驱动及本地服务类异常

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

WebDriverException: Message: ‘geckodriver‘ executable needs to be in PATH.   或者  WebDriverException: Message: ‘chromedriver‘ executable needs to be in PATH.

原因: 查找不到对应的浏览器驱动

解决方法: 下载浏览器对应版本的 chromedriver 或geckodriver,放到脚本当前文件夹下或将路径配置到环境变量中, 或放到Python目录的Scripts下(一般情况下Python的Scripts目录在环境变量中), 或使用浏览器选项options指定驱动路径。

2、未找到浏览器

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

原因: 在默认路径下未找到Firefox/Chrome浏览器

解决方法: 重新安装Firefox/Chrome浏览器

3、驱动和浏览器不匹配

SessionNotCreatedException: Message: session not created: this version of ChromeDriver only supports Chrome version 76

原因: 当前使用chromedriver只支持Chrome76版本

解决方法: 查看本地Chrome浏览器的版本, 下载对应的chromedriver

4、驱动被防火墙拦截

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

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

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

5、连接不上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异常

原文地址:https://www.cnblogs.com/123anqier-blog/p/12639194.html

时间: 2024-08-02 06:40:33

Selenium常见异常分析及解决方案的相关文章

Java ConcurrentModificationException 异常分析与解决方案

Java ConcurrentModificationException 异常分析与解决方案http://www.2cto.com/kf/201403/286536.html java.util.ConcurrentModificationException 解决办法 http://blog.csdn.net/lipei1220/article/details/9028669 原因:Iterator做遍历的时候,HashMap被修改(bb.remove(ele), size-1),Iterato

【转】Java ConcurrentModificationException 异常分析与解决方案--还不错

原文网址:http://www.2cto.com/kf/201403/286536.html 一.单线程 1. 异常情况举例 只要抛出出现异常,可以肯定的是代码一定有错误的地方.先来看看都有哪些情况会出现ConcurrentModificationException异常,下面以ArrayList remove 操作进行举例: 使用的数据集合: ? 1 2 3 4 5 6 7 List<string> myList = new ArrayList<string>(); myList.

赠送 HttpClient 和HttpURLConnection 的轻型网络 ---》常见异常分析

转载注明出处 :http://blog.csdn.net/codingandroid/article/details/41749581 之前一篇中有使用到AsyncBaseRequest 类,其中抛出了很多异常,当然已经有了部分注释,那下面我们来分析一下这些异常,以及异常出现的情况 ConnectTimeoutException 这个是连接异常(例如根本没有打开网络等情况下),数据还没有到达服务器,所以就算是订单类的也没有关系,可以再次提交 这个情况比较好处理了,就是请求压根没到服务器,如果要模

flume常见异常汇总

flume常见异常汇总以及解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际生产环境中,我用flume将kafka的数据定期的往hdfs集群中上传数据,也遇到过一系列的坑,我在这里做个记录,如果你也遇到同样的错误,可以参考一下我的解决方案. 1>.服务器在接收到响应之前断开连接. 报错信息如下: Caused by: org.apache.kafka.common.errors.NetworkException: The server disconnected be

爬虫常见异常

常见异常解析与解决方案 异常类型 异常原因 解决方案 ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接.     原文地址:https://www.cnblogs.com/shengjie1/p/12296551.html

Hadoop常见异常及其解决方案

1.Shell$ExitCodeException 现象:运行hadoop job时出现如下异常: 14/07/09 14:42:50 INFO mapreduce.Job: Task Id : attempt_1404886826875_0007_m_000000_1, Status : FAILED Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException: org.apache.hadoo

Redis_常见JedisConnectionException异常分析

最近项目开发中用到了Redis, 选择了官网推荐的java client Jedis.Redis常用命令学习:http://redis.io/commandsRedis官方推荐Java客户端Jedis(包含了所有Redis命令的实现):https://github.com/xetorthio/jedis Jedis使用过程中最常见异常JedisConnectionException有时确实给我们带来了很多困惑,这个异常通常出现在两个使场景. 一.当我们执行如下JedisPool类实例的getRe

Eclipse部署Web项目时常见的错误和解决方案

Tomcat部署Web项目到tomcat 在eclipse中找到Servers项,打开服务器(F3)(建议直接删除服务器,重新建立再设置比较好)1.Servers Locations 中选择Use Tomcat installation 2.Deploy path 改成 webapps这时候在eclipse上直接运行项目,就会自动部署到tomcat上,通过浏览器或者eclipse都可以访问该项目. Tomcat控制台的用户角色配置 在Tomcat的Mapper App中,默认没有提供控制台角色.

Spring学习总结(14)——Spring10种常见异常解决方法

在程序员生涯当中,提到最多的应该就是SSH三大框架了.作为第一大框架的Spring框架,我们经常使用. 然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉. 一.找不到配置文件的异常 [plain] view plaincopy org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [com/