今天换了个电脑,之前在旧电脑里运行的自动化测试脚本突然失灵了,真的让人头秃,先看看问题
报错信息中显示WebDriver没有属性find_element_by_xpath,这怎么可能,这些代码在之前电脑里运行了千百遍,不可能说失效就失效的,悲伤持续了一秒钟,我就拿出百度大法,果然有解决方案:
#引入模块
from selenium.webdriver.common.by import By
#改写方法
dr.find_element(By.XPATH,"my xpath")
1. 引入By模块
2. find_element_by_xpath方法改为find_element方法,同时方法参数从原来的一个变成了两个
我试用用了一番,果然能正常运行了,可是新的问题出现了,我的脚本大部分都是使用的find_element_by_xpath方法,这时全部改为find_element方法,可谓工作量真的不小啊,难道真的要这样做吗,我就不信邪了,再次回到最初的问题,为什么一换电脑,自动化脚本就失效了,我的猜测应该是电脑环境的不同导致的,因此我就熟练的重装的chrome,更新到最新版,同时ChromeDriver工具也更新到匹配版本,具体操作,查看:【工具篇】ChromeDriver的下载与安装_编程小朱 ZZ的博客-CSDN博客
这下就应该解决问题了吧,可是实验结果还是‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘,这是怎么回事,环境也一致了,还是不能解决问题,怎么办?
代码是一样的代码,浏览器是一样的浏览器,ChromeDriver是一样的ChromeDriver,版本一致,还能有啥不一致的?
网上解决问题的方式是改代码,而我的代码在旧电脑上流畅运行,要是有问题,我就倒立写代码!
倒不倒立还是小事,当前最主要的先改bug,既然代码出错,最有效的方式还是回归代码,我一行行的检查它的拼写错误以及调用逻辑,愣是看不出有啥问题,可是一运行就‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘,盯着这个错误看了足足5秒钟,我悟了,WebDriver没有find_element_by_xpath方法,并不是这个方法的错误,是WebDriver的错误,这个WebDriver来自selenium,冤有头债有主,铁定selenium出错了,没想到啊,没想到,堂堂的selenium竟然出这么个大漏洞,感觉要上热搜了,激动颤抖的小手连键盘都敲不稳了,为了让自己能稳住,我从头到尾梳理了一遍,这一梳理就惊出了一身冷汗,是不是版本的问题,这个想了无数次的问题再次出现在脑海中,既然换了新电脑,涉及到的所有环节的版本是否保持一致,既然selenium出现了问题,会不会selenium版本不一致,我慌忙在两个电脑的终端分别输入pip show selenium,新电脑显示Version:4.4.3,旧电脑显示:4.2.0,果然!
在新电脑中卸载selenium,并安装指定版本4.2.0
pip uninstall selenium
pip install selenium==4.2.0
再次运行自动化脚本,流畅完美。文章来源:https://www.toymoban.com/news/detail-409259.html
还是自己学艺不精,差点闹笑话,哈哈哈。文章来源地址https://www.toymoban.com/news/detail-409259.html
到了这里,关于【趣解Bug】解决‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!