Selenium常见异常解析及解决方案示范
作者:临渊 发布时间:2023-06-27 20:09:48
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: 元素没有这个属性, 解决方法: 确认定位到的元素是否目标元素, 检查属性拼写
NoAlertPresentException:没有找到alert弹出框, 解决方法: 观察页面,查看是否有弹框出现, 加上等待或作为偶现元素处理
NoSuchFrameException:没有找到指定的frame或iframe, 解决方法: 查看拼写或切换使用frame的id/name/index/定位到的frame
NoSuchWindowException: 没找到窗口句柄指定的窗口, 解决方法: 查看使用的窗口句柄变量拼写
UnexpectedAlertPresentException: 出现了弹框而未处理, 解决方法: 切换到警告框并处理, 如果偶现,使用try...except处理偶现弹框
InvalidSwitchToTargetException: 切换到指定frame或窗口报错, 解决方法: 查看相应的frame或窗口是否能定位到
UnexpectedTagNameException: 使用Tag Name不合法, 解决方法: 检查拼写或使用css selector/xpath
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: 输入法激活异常
来源:https://www.cnblogs.com/superhin/p/11454861.html


猜你喜欢
- 我们在编写网页的时候不可避免的会遇到输入框,那么怎么设计输入框才能更加优雅呢?不同的人会有不同的答案,下面分享一个比较不错的设计。效果图细节
- 众所周知,升级某个库(假设为 xxx),可以用pip install --upgrade xxx 命令,或者简写成pip install -
- 经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时
- 本文实例为大家分享了python数据写入excel表格的具体代码,供大家参考,具体内容如下安装: xlsxwriter第三方库code:#!
- 如下图所示:单击Edit Code打开Code信息如下:经查Data at the root level is invalid是XML文件的
- 环境管理管理 Python 版本和环境的工具p:非常简单的交互式 python 版本管理工具。官网pyenv:简单的 Python 版本管理
- 开始现在要加速学习了,大佬们有没有内推,给个推荐会vue2/vue3 + ts断言非空断言非空断言就是确定这个变量不是null或者undef
- 前言:c3p0 是一个开源的数据库连接池,实现了 JDBC 3 规范;本文主要介绍 c3p0 的基本使用,文中使用到的软件版本:Java 1
- Vue.js绑定HTML class数组语法错误,详情如下所示:昨天在官网教程上发现一个错误是这样的,下面看图http://cn.vuejs
- 最近我在Go Forum 中发现了String size of 20 character 的问题,“hollowaykeanho” 给出了相
- 我大概思考了下有如下几种方法可以解决: 1.在图片服务器上开通FTP,人为添加图片地址即可,但不方便,特别是在可视编辑器中看图还的多一部操作
- SQL Server导出表到EXCEL文件的存储过程:*--数据导出EXCEL导出表中的数据到Excel,包含字段名,文件为真正的Excel
- 最近做项目中有一个模块是用于实时监控的,左边有个菜单栏用于显示所有的设备,那当然是从数据库中动态获取的了,右边是个iframe用于显示监控画
- 数据初始化import pandas as pdimport numpy as npa=np.array([['北京',
- 由于这两天换了IDE,在导入以前的工程的时候发现了一个大问题,由于以前脑残的我不知道改编码方式,导致出现了大量的GBK,这就很难受,要是一个
- WebSocket的作用WebSock其实在平常使用,我们是时常见到的,用于实时通讯,例如我们常用的实时聊天、服务端向客户端消息推送、也可以
- 这篇文章主要介绍了如何基于python实现脚本加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- java.util.regex类支持用正则表达式来匹配和提取字符串,读者可以去官网查看java.util.regex的详细使用方法。首先给出
- 如下所示:filename=None if request.method == 'POST
- 本文实例讲述了Java开发之Spring连接数据库方法。分享给大家供大家参考,具体如下:接口:package cn.com.service;