首頁 >後端開發 >Python教學 >如何使用 Selenium 和 Python 高效定位具有多個類別名稱的 Web 元素?

如何使用 Selenium 和 Python 高效定位具有多個類別名稱的 Web 元素?

Linda Hamilton
Linda Hamilton原創
2024-12-11 18:57:13252瀏覽

How Can I Efficiently Locate Web Elements with Multiple Class Names Using Selenium and Python?

使用Selenium 和Python 以類別名稱找出元素

在網頁抓取場景中,經常需要在網頁上定位元素動態地。為了克服 BeautifulSoup 在處理動態內容方面的局限性,可以整合 Selenium,以便在抓取之前等待元素透過 JavaScript 載入。

考慮以下 Python 程式碼:

element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))

在此這行程式碼的目的是為元素識別指定一個類別名稱。但是,由於 By.class 參數中存在多個類別名,可能會發生錯誤。 Selenium 不支援透過 By.class 傳遞多個類別名稱。

解決方案

要解決這個問題,請考慮以下建議:

  • 使用visibility_of_element_ located()或visibility_of_element_located(of_element_located(of_element_located(of_element_located()代替presence_of_element_ located() element_to_be_clickable() 實現更精確的元素交互作用。
  • 使用以下方法結合 ID 和 CLASS屬性進行元素標識技術:

CSS_SELECTOR:

element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion")))

XPATH:

element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']")))

XPATH:

XPATH:XPATH:XPATH:XPATH:XPATH:

以上是如何使用 Selenium 和 Python 高效定位具有多個類別名稱的 Web 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn