啟動功能時
def run(driver_path):
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://tproger.ru/quiz/real-programmer/')
button = driver.find_element_by_class_name("quiz_button")
button.click()
run(driver_path)
我收到以下錯誤:
<ipython-input-27-c5a7960e105f>:6: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(executable_path=driver_path)
<ipython-input-27-c5a7960e105f>:10: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
button = driver.find_element_by_class_name("quiz_button")
但不明白為什么。
將 webdriver 用于我的 chrome 版本的最新版本。我為什么
`find_element_by_* commands are deprecated`
如果在檔案中該命令存在
uj5u.com熱心網友回復:
這個錯誤資訊...
DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
...暗示這些find_element_by_*命令在最新的 Selenium Python 庫中已被棄用。
正如@AutomatedTester 所提到的:這個DeprecationWarning反映了在簡化跨語言 API 的決定方面所做的更改,這就是這樣做的。
解決方案
相反,您必須使用find_element(). 舉個例子:
使用
class_name:button = driver.find_element_by_class_name("quiz_button")需要替換為:
button = driver.find_element(By.CLASS_NAME, "quiz_button")
在類似的行中,您還必須更改以下內容:
使用
id:element = find_element_by_id("element_id")需要替換為:
element = driver.find_element(By.ID, "element_id")使用
name:element = find_element_by_name("element_name")需要替換為:
element = driver.find_element(By.NAME, "element_name")使用
link_text:element = find_element_by_link_text("element_link_text")需要替換為:
element = driver.find_element(By.LINK_TEXT, "element_link_text")使用
partial_link_text:element = find_element_by_partial_link_text("element_partial_link_text")需要替換為:
element = driver.find_element(By.PARTIAL_LINK_TEXT, "element_partial_link_text")使用
tag_name:element = find_element_by_tag_name("element_tag_name")需要替換為:
element = driver.find_element(By.TAG_NAME, "element_tag_name")使用
css_selector:element = find_element_by_css_selector("element_css_selector")需要替換為:
element = driver.find_element(By.CSS_SELECTOR, "element_css_selector")使用
xpath:element = find_element_by_xpath("element_xpath")需要替換為:
element = driver.find_element(By.XPATH, "element_xpath")
uj5u.com熱心網友回復:
@DebanjanB 提到并解釋了新結構,最好使用以下幾行:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
s = Service('C:/Users/.../chromedriver.exe')
driver = webdriver.Chrome(service=s)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/355902.html
