【趣解Bug】解决‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘问题

今天换了个电脑,之前在旧电脑里运行的自动化测试脚本突然失灵了,真的让人头秃,先看看问题

报错信息中显示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

再次运行自动化脚本,流畅完美。

还是自己学艺不精,差点闹笑话,哈哈哈。

你可能感兴趣的:(python,python,bug)