新版selenium中 find_element_by_xpath 已失效的解决方法

selenium的一些函数(例如.find_element_by_xpath等),在新版本的selenium包中已经失效。
所以,应当安装旧版本的selenium(3.141.0),程序才能正常运行。
具体操作如下:

1、 删除 urllib3 包: pip uninstall urllib3
2、 删除 selenium 包: pip uninstall selenium
期间如有询问,输入Y,回车

3、安装 urllib3:
pip install urllib3==1.25.8 -i https://pypi.tuna.tsinghua.edu.cn/simple

4、安装 selenium:
pip install selenium==3.141.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

5、查看已安装的版本:
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 By
from selenium.webdriver.chrome.service import Service

2、修改代码,在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"]')

3、改chromedriver 路径

 browser=webdriver.Chrome('C:\drv\chromedriver.exe') 
 为:
browser=webdriver.Chrome(service= Service('C:\drv\chromedriver.exe'))

4、依次卸载 selenium、urllib3、requests
再反向,依次安装之

    20220926当前新版为  selenium V4.4.3、urllib3 V1.26.12、requests V2.28.1

你可能感兴趣的:(Day,Day,Up,selenium,python,chrome)