0

好的,所以我正在使用我的笔记本电脑 rn,我从我的 PC 复制并粘贴了我的代码,但突然它无法正常工作。我已经安装了相同的 Selenium,但现在它正在运行,我收到了 DeprecationWarnings,driver.find_element_by_xpath 不起作用等。

def click():
    driver = webdriver.Chrome(executable_path="C:\webdrivers\chromedriver.exe", chrome_options=options_)
    driver.get("http://www.discord.com")
    driver.find_element_by_xpath()

这是我写的一个例子,它不再起作用,它driver.find_element_by_xpath()有一条线!当我在另一个 py 文件(在 pycharm 中)中重写它时,它不喜欢我使用驱动程序,它带有红色下划线。

有人可以解释到底发生了什么吗?

4

2 回答 2

0

此错误消息...

 DeprecationWarning: find_element_by_* commands are deprecated

...暗示这些find_element_by_*命令现在与最新的 Selenium Python 库中的DeprecationWarning相关联。


此更改与Selenium 4 Release Candidate 1 更改日志一致,其中提到:

指定“find_element_by_* ...”警告是弃用警告 (#9700)


兼容代码

而不是find_element_by_*你必须使用find_element(). 一个例子:

  • 使用xpath

    driver.find_element_by_xpath("element_xpath")
    

    需要替换为:

    driver.find_element(By.XPATH, "element_xpath")
    

您需要添加以下导入:

from selenium.webdriver.common.by import By

此外,您必须使用options而不是chrome_optionsaschrome_options现在已弃用。

您可以在以下位置找到一些相关的详细讨论:


解决方案

实际上,您的代码块将是:

def click():
    driver = webdriver.Chrome(executable_path="C:\webdrivers\chromedriver.exe", options=options_)
    driver.get("http://www.discord.com")
    driver.find_element(By.XPATH, "element_xpath")
于 2022-01-24T20:43:27.140 回答
0

现在你需要使用这个:

from selenium import webdriver
from selenium.webdriver.common.by import By  

def click():
    driver = webdriver.Chrome(executable_path="C:\webdrivers\chromedriver.exe", 
    chrome_options=options_)
    driver.get("http://www.discord.com")
    driver.find_element(By.XPATH, 'your xpath')

这适用于 By.CLASS_NAME、By.CSS_SELECTOR 等

于 2022-01-24T20:43:27.670 回答