selenium的一些函数(例如.find_element_by_xpath等),在新版本的selenium包中已经失效。
所以,应当安装旧版本的selenium(3.141.0),程序才能正常运行。
具体操作如下:
删除 urllib3 包: pip uninstall urllib3
2、 删除 selenium 包: pip uninstall selenium
期间如有询问,输入Y,回车
安装 urllib3:
pip install urllib3==1.25.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装 selenium:
pip install selenium==3.141.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
查看已安装的版本:
pip show urllib3
pip show selenium
基本原理是:
我们要使用 selenium(版本3.141.0) 和 urllib3(版本1.25.8),是相匹配的1对。
如果版本不是这个,则先删除当前版本,再安装我们想要的版本。
其中urllib3是selenium的依赖包
**
彻底的解决方法,应该是更改自己的源程序,改掉那些失效的用法。适应新版本,也简化了安装。
**
具体做法如下:
1、增加2个引入
from selenium.webdriver.common.by import Byfrom selenium.webdriver.chrome.service import Service
修改代码,在pycharm中 Ctrl+R
替换所有的 ".find_element_by_xpath(" 为 ".find_element(By.XPATH," 替换所有的 ".find_elements_by_xpath(" 为 ".find_elements(By.XPATH,"
也就是
browser.find_element_by_xpath('//div[@id="main"]')
改成
browser.find_element(By.XPATH,'//div[@id="main"]')
改chromedriver 路径
browser=webdriver.Chrome('C:\drv\chromedriver.exe')
为:
browser=webdriver.Chrome(service= Service('C:\drv\chromedriver.exe'))
依次卸载 selenium、urllib3、requests
再反向,依次安装之
20220926当前新版为 selenium V4.4.3、urllib3 V1.26.12、requests V2.28.1
来源地址:https://blog.csdn.net/weixin_46279624/article/details/127076156