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中文網其他相關文章!