selenium常见异常以及处理方法

这篇具有很好参考价值的文章主要介绍了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:在显示等待,或隐式等待中,查找元素超时,也就是找不到元素。

十三、元素操作异常文章来源地址https://www.toymoban.com/news/detail-401898.html

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:鼠标事件移动的位置不合适
	解决:通常结合页面当前状态,换个位置即可。

到了这里,关于selenium常见异常以及处理方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HiveServer2 常见异常和处理方法

    可能原因: HiveServer 连接数达到上限。因为每个 jdbc,HiveServer 需要一个线程。 HiveServer OOM 不能及时处理客户请求 Hive Metastore 没有响应或者后台数据库卡住。 HiveServer2 Server socket 的 backlog 默认是 0,在centos 系统中查看 HiveServer2 的 backlog 是50。当Socket accept 的速度变慢,操作系

    2024年02月03日
    浏览(45)
  • ElasticSearch | SpringBoot集成ES异常以及处理方法

    异常 Elasticsearch exception Elasticsearch exception [type=cluster_block_exception, reason=index [video_struct_vehicle] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]; 产生原因 服务磁盘内存不足,导致无法删除,所有索引都变成了只读 read-only状态。 一旦在存储超过95%的磁盘中的节点上分配了一个

    2024年02月13日
    浏览(40)
  • pycharm的debug调试以及异常,Python 中错误的处理方式

    在b站看了详细的视频教程,做一个系统的总结。第一次写关于pycharm的debug调试以及python代码运行报错处理的帖子,错误地方请大家指出。 作为一个非科班出生的学生,平时看代码的时候特别的难懂,这时候对代码debug单步调试可以很好的看代码的具体信息。让我们能够更加清

    2023年04月19日
    浏览(45)
  • Selenium常见异常分析及解决方案

    现象: pycharm中输入 from selenium import webdriver ,  selenium 标红 原因1: pycharm使用的虚拟环境中没有安装selenium, 解决方法: 在pycharm中通过设置或terminal面板重新安装selenium 原因2: 当前项目下有 selenium.py ,和系统包名冲突导致, 解决方法,重命名这个文件 未找到响应的浏览器驱动 WebDri

    2024年02月09日
    浏览(48)
  • 【python】数据挖掘分析清洗——离群点(异常值)处理方法汇总

    本文链接:https://blog.csdn.net/weixin_47058355/article/details/129949060?spm=1001.2014.3001.5501 异常值处理的意义在于提高数据分析的准确性和可靠性。异常值往往会影响数据的统计特征,如平均值、方差等,从而导致错误的结论或预测结果。此外,异常值还可能干扰模型的拟合效果,使得模

    2024年02月08日
    浏览(63)
  • java异常处理机制(三)常见异常

    Java常见的异常包括但不限于以下几种: 1. NullPointerException(空指针异常):当试图调用实例方法或访问实例变量时,对象引用为 null 时抛出。 2. ArrayIndexOutOfBoundsException(数组越界异常):当访问数组中不存在的元素时抛出。 3. ClassCastException(类转换异常):当试图将对象强

    2024年02月05日
    浏览(52)
  • 【数据分析】Python:处理缺失值的常见方法

    在数据分析和机器学习中,缺失值是一种常见的现象。在实际数据集中,某些变量的某些条目可能没有可用的值。处理缺失值是一个重要的数据预处理步骤。在本文中,我们将介绍如何在 Pandas 中处理缺失值。 我们将探讨以下内容: 什么是缺失值; 如何在 Pandas 中识别缺失值

    2024年02月03日
    浏览(92)
  • C# 异常处理机制和常见的异常类型

    在 C# 中,异常处理是一个非常重要的概念,它可以让我们在程序发生错误时进行有效的处理,使程序具备更好的鲁棒性。C# 异常处理机制基于 try-catch-finally 语句块,其基本用法如下: 在上面的代码中,try 块中的代码可能会抛出一些异常,如果发生异常,则会进入到相应的

    2023年04月21日
    浏览(32)
  • JavaScript 常见错误与异常处理

    1、调试和故障排除: 了解常见的JavaScript错误可以帮助你更好地调试和故障排除代码。当你遇到错误时,能够快速识别错误类型并找到解决方法,可以节省大量的时间和精力。 2、代码质量和稳定性: 通过了解常见的JavaScript错误,你可以编写更健壮和稳定的代码。你可以预先

    2024年02月03日
    浏览(37)
  • Java 异常处理以及如何捕获和处理多个异常

    在Java中,我们使用异常处理程序组件try,catch和finally块来处理异常。 为了捕获和处理异常,我们将try...catch...finally代码块放置在可能产生异常的代码周围。finally块是可选的。 try...catch...finally的语法为: 可能会生成异常的代码放在try块中。 每个try块后面应紧跟着catch 或 fi

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包