首页  >  文章  >  后端开发  >  为什么 Selenium Python 库中不推荐使用 find_element_by_* 命令?

为什么 Selenium Python 库中不推荐使用 find_element_by_* 命令?

Barbara Streisand
Barbara Streisand原创
2024-11-10 11:32:02794浏览

Why are find_element_by_* commands deprecated in Selenium Python libraries?

Selenium 中弃用 find_element_by_* 命令

早期版本的 Selenium Python 库支持使用 find_element_by_* 命令。然而,在最近的版本中,这些命令已被弃用。

错误消息:

在最新的 Selenium Python 库中使用 find_element_by_* 命令时,您可能会遇到以下情况错误消息:

DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead

原因弃用:

弃用 find_element_by_* 命令的决定源于简化不同语言之间的 Selenium API 的目标。

解决方案:

要解决此问题,您应该改用 find_element() 方法而不是find_element_by_* 命令。

# Previous code
button = driver.find_element_by_class_name("quiz_button")

# Updated code
from selenium.webdriver.common.by import By

button = driver.find_element(By.CLASS_NAME, "quiz_button")

附加说明:

类似地,您需要更新其他 find_element_by_* 命令,如下所示:

Old Command New Command
find_element_by_id() find_element(By.ID, ...)
find_element_by_name() find_element(By.NAME, ...)
find_element_by_link_text() find_element(By.LINK_TEXT, ...)
find_element_by_partial_link_text() find_element(By.PARTIAL_LINK_TEXT, ...)
find_element_by_tag_name() find_element(By.TAG_NAME, ...)
find_element_by_css_selector() find_element(By.CSS_SELECTOR, ...)
find_element_by_xpath() find_element(By.XPATH, ...)

注意:您还应该更新复数版本(find_elements_by_*) 相应地。

升级到 Selenium 4 时,请参阅 Selenium 升级指南,了解有关此更改和其他更改的更多信息。

以上是为什么 Selenium Python 库中不推荐使用 find_element_by_* 命令?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn