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, 窗口
NoSuchElementException: 找不到元素, 解决方法: 前面加上sleep等待后重试,或换一种定位方式NoSuchAttributeException: 元素没有这个属性, 解决方法: 确认定位到的元素是否目标元素, 检查属性拼写
3.NoAlertPresentException:没有找到alert弹出框, 解决方法: 观察页面,查看是否有弹框出现, 加上等待或作为偶现元素处理NoSuchFrameException:没有找到指定的frame或iframe, 解决方法: 查看拼写或切换使用frame的id/name/index/定位到的frameNoSuchWindowException: 没找到窗口句柄指定的窗口, 解决方法: 查看使用的窗口句柄变量拼写UnexpectedAlertPresentException: 出现了弹框而未处理, 解决方法: 切换到警告框并处理, 如果偶现,使用try...except处理偶现弹框InvalidSwitchToTargetException: 切换到指定frame或窗口报错, 解决方法: 查看相应的frame或窗口是否能定位到UnexpectedTagNameException: 使用Tag Name不合法, 解决方法: 检查拼写或使用css selector/xpath
9.TimeoutException:查找元素或操作超时, 解决方法, 稍后重试
元素操作异常类: 隐藏/不可操作状态
ElementNotVisibleException:元素不可见异常, selenium不能直接操作隐藏元素, 解决方法: 加上等待, 使用正常步骤使元素显示, 或使用js找到该元素的祖先节点的隐藏属性(通常为styple="display: none"), 移除该属性然后定位操作.StaleElementReferenceException: 陈旧元素引用异常, 页面刷新或跳转后使用了之前定位到的元素, 解决方法: 重新定位元素并操作InvalidElementStateException: 元素状态异常 元素只读/不可点击等, 解决方法, 等待或使用js移除元素readonly/disable等限制属性后操作ElementNotSelectableException:元素不可被选中, 解决方法: 确认原始是否为select标签, 是否禁用InvalidSelectorException: 使用的定位方法不支持或xpath语法错误, 未返回元素, 解决方法: 检查使用的元素定位器是否拆包, 使用find_element()方法是, 第一个参数为'class name', 'link text', 'particial link text' 'css selector', 空格分开, 非下划线连接, 建议使用By.CLASS_NAME的方式. 使用chrome开发着工具+Ctrl+F搜索验证自己写的xpath语法.MoveTargetOutOfBoundsException: 使用ActionChains的move方法时移动到的位置不合适
Cookie存取相关异常
InvalidCookieDomainException: Cookie相应的域名无效UnableToSetCookieException: 设置Cookie异常
IME输入法引擎异常
ImeNotAvailableException: 服务器不支持输入法ImeActivationFailedException: 输入法激活异常
Selenium常见异常分析及解决方案的更多相关文章
- flume常见异常汇总以及解决方案
flume常见异常汇总以及解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际生产环境中,我用flume将kafka的数据定期的往hdfs集群中上传数据,也遇到过一系列的坑 ...
- Java ConcurrentModificationException 异常分析与解决方案
Java ConcurrentModificationException 异常分析与解决方案http://www.2cto.com/kf/201403/286536.html java.util.Co ...
- 【转】Java ConcurrentModificationException 异常分析与解决方案--还不错
原文网址:http://www.2cto.com/kf/201403/286536.html 一.单线程 1. 异常情况举例 只要抛出出现异常,可以肯定的是代码一定有错误的地方.先来看看都有哪些情况会 ...
- struts2.1.8+hibernate2.5.6+spring3.0(ssh2三大框架)常见异常原因和解决方案
---------------------------------------------------------------------------------------------------- ...
- spark not serializable异常分析及解决方案
转载自: http://bigdataer.net/?p=569 1.背景 在使用spark开发分布式数据计算作业过程中或多或少会遇到如下的错误: Serialization stack: objec ...
- Selenium常见报错问题(1)- 先来认识下selenium常见异常类
如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列的文章,看看有没有你需要的答案 https://www.cnblogs.com/poloyy/category/1749 ...
- nginx常见异常分析
1.nginx不转发消息头header问题 proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_ ...
- Redis_常见JedisConnectionException异常分析
最近项目开发中用到了Redis, 选择了官网推荐的java client Jedis.Redis常用命令学习:http://redis.io/commandsRedis官方推荐Java客户端Jedis ...
- IIS网站部署步骤以及常见异常解决方案
一. 简述 如果VS调试代码每次都使用浏览器打开,修改脚本和样式等还可以刷新页面显示最新修改,但是修改后台代码的话就需要停止调试再重新使用浏览器打开才能显示后台的最新修改,就比较麻烦.这里推荐附加到I ...
随机推荐
- 操作系统diy-1-资料整理
已经研三了,前段时间校招找了份内核开发的工作,正好有时间做这个以前一直想做的事情.听说写操作系统要花很多时间了解学习计算机方方面面的知识,之前也查过相关的资料,关注过mit的操作系统公开课程.这几天准 ...
- Linux:删除一个目录下的所有文件,但保留一个指定文件
面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件 [root@oldboy xx]# touc ...
- 怎样指定当前cookie不能通过js脚本获取
所谓" 不能通过js脚本获取 " 主要指的是: 使用document.cookie / XMLHttpRequest对象 / Request API 等无法获取到当前cookie. ...
- java lesson09总结
package Super; public class SuperTest { String color; // public SuperTest(String color) {this.colo ...
- gperftools源码分析和项目应用 - CPU Profiler
gperftools源码分析和项目应用 - CPU Profiler 原文:https://blog.csdn.net/yubo112002/article/details/81076821 原文链接 ...
- 流媒体服务器搭建 ffmpeg + nginx
第一部分: mkdir ~/working 切换到~/working目录下 cd ~/working 获取nginx源码: wget http://nginx.org/download/nginx-1 ...
- python生成式:列表、字典、集合
python的3类生成式: 列表生成式 字典生成式 集合生成式 1.python列表生成式 my_data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(&quo ...
- 数学模块 math 函数的调用
数学模块 math 模块名: math 注: linux下为内建模块 Mac OS下为标准库模块 数学模块用法: import math # 或 from math import * 数据 描述 ma ...
- 在php中连接数据库 pdo
在php中连接数据库 pdo //数据库信息 $mysql_conf = array( 'host' => '127.0.0.1', 'db' => 'meteorolog_foreign ...
- CentOS7 字体安装卸载
CentOS7 默认安装有 Fonts 程序, 所以能直接双击打开字体文件, 并且可以直接点击上图的 Install 按钮安装字体.采用这种安装方法,字体会被安装在 ~/.local/share/fo ...