IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> selenium常见异常以及处理方法 -> 正文阅读

[Python知识库]selenium常见异常以及处理方法

python常见异常以及处理方法

.
.

一、 TypeError: ‘module’ object is not callable

代码:driver = webdriver.chrome()
异常:TypeError: 'module' object is not callable
解决:谷歌浏览器首字母 C 大写,即:driver = webdriver.Chrome()

二、“chromedriver” executable needs to be in path

原因:没有 Chrome 驱动
解决:需下载驱动添加到环境变量;如果已下载,需指明驱动路径。

	如果还是报错:
    1、在代码中添加路径,指明路径。
    2、指明路径还报错,检查下自己的驱动版本。
    3、如果添加路径,不报错,证明环境变量有问题。

三、selenium 点击元素报错 ElementClick

问题:明明定位成功,但是点击就是报错。
原因:元素被其他控件遮挡了。
解决:
1、用 js 去点击。
    ele = driver.find_element_by_id(表达式)
    driver.execute_script("argument[0].click;", ele)

2、用鼠标事件去点击。
    ele = driver.find_element_by_id(表达式)
    webdriver.ActionChains(driver).move_to_element(ele).click(ele).perform()

3、元素被遮挡了,点击一下旁边的不会产生事件的元素,取消遮挡。

四、selenium 使用 clear 无法清除文本框内容
WEB自动化_键盘事件

问题:清除文本框内容之后,文本框内容又被自动填充了。
解决:键盘事件,先全选文本框内容,再删除键,即可清除。

五、下拉框是 input 封装的,无法操作
WEB自动化_文件上传(input 标签和非input 标签)

解决:先定位到 input,然后输入内容,通过键盘事件,选择下拉框内容。
ele = driver.find_element_by_id(表达式)
ele.send_keys(Keys.DOWN)
ele.send_keys(Keys.ENTER)

六、找不到元素,NoSuchElement

原因:
    1、之前的操作导致界面变化,元素定位表达式失效,定位失败。
        也有可能是上一步操作异常,而上一步操作正是进入新页面的,所以没有进入新页面。
    2、元素未加载就定位。
    3、内嵌网页。
    4、多标签页。
解决:        
	1、重新定位,使操作元素的时候,使用的表达式与页面变化后的一致, 解决上一步的异常。
    2、等待。若元素未加载,则使用显示等待。若是浏览器反应过慢,则sleep。
    3、切换到内嵌网页。
    4、切换到对应的标签页。

七、 pycharm 导入selenium报错

原因:pycharm的虚拟环境没有安装selenium。
解决:在 pycharm 中通过设置重新安装selenium。

原因:当前项目下,有selenium.py 或名为 selenium的文件夹,导致与系统包名冲突。
解决:禁止使用关键字为自己的问、项目、变量命名。

八、驱动与浏览器不匹配

问题:SessionCreatedException ....... Chrome version 73
解决:查看本地驱动版本,下载对应的 chromedriver。

九、驱动被防火墙拦截

问题:WebDriverException:Message:Can not connect to the Service chromedriver.exe
原因:驱动被防火墙拦截。
解决:设置防火墙允许。

十、连接不上 chromedriver 服务

问题:WebDriverException:Message:Can not connect to the Service chromedriver
原因:代码通过 127.0.0.1 这个ip 访问 chromedriver 服务,hosts文件没有配置127.0.0.1指向localhost。
解决:配置本地hosts文件,添加 127.0.0.1 localhost。

十一、远程服务器异常

问题:RemoteDriverServerException
原因:当浏览器功能错误组合/字段 导致服务器不发送响应。
解决:检查远程 webdriver服务。

十二、各种找不到

1、NoSuchElementException:找不到元素。
2、NoSuchAttributeException:元素没有这个属性,确认定位到的元素是否具备目标属性,或检查一下单词拼写。
3、NoAlertPresentException:没有找到 alert 弹窗,观察页面,查看是否有弹窗出现,或加上等待。
4、NoSuchFrameException:没有找到内嵌网页,检查元素定位、或者单词拼写。
5、NoSuchWindowException:没找到窗口,窗口是不是被提前关闭了,或者检查单词拼写、列表索引、或判断条件。
6、TimeOutException:在显示等待,或隐式等待中,查找元素超时,也就是找不到元素。

十三、元素操作异常

1、ElementNotVisibleException:元素不可见异常

	原因:selenium不能操作隐藏元素
	1、可能元素在某操作后需要反应一下,才会从隐藏状态变为可见。
	解决:可用 sleep 等待。
	2、可能元素需要某些步骤之后,才会出现。
	解决:去执行这些步骤。
	3、如果一定要操作隐藏元素,可用 js 语法移出元素的不可见属性。
	(style=“display:none”)
	    document.querySelector("li[class='b_ans b_top b_topborder']").removeAttribute("h")
	    表达式写 css 表达式定位


2、StaleElementException: 陈旧的元素引用异常
	原因:页面刷新了,或页面跳转之后,使用了之前定位的元素。
    解决:重新定位元素并操作


3、InvalidElementStateException:元素状态异常
	原因:元素只读、不可点击等。
	解决:等待或使用js移出影响属性。


4、ElementNotSelectableException:元素不可被选中
    确认标签是 select


5、MoveTargetOutOfBoundsException:鼠标事件移动的位置不合适
	解决:通常结合页面当前状态,换个位置即可。
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:44:49  更:2022-07-03 10:47:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:35:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码