網頁抓取動態HTML 頁面時,使用WebDriverWait andWebDriverence located () 允許我們等待特定元素的出現在檢索資料之前。通常,我們透過元素的 ID 來指定元素。然而,在某些情況下,我們可能需要透過元素的類別來指定元素。
原始程式碼嘗試使用EC.presence_of_element_ located((By.class, "ng-binding ng- range")):
element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))
但是,此語法將不起作用,因為它不遵守WebDriver 的定位器語法規則。 By.class 方法不支援多個類別名稱作為參數。
要解決此問題,我們可以使用Presence_of_element_ located( ) 函數與By.CSS_SELECTOR 或By.XPATH 一起將ID 和類別屬性指定為如下:
使用CSS_SELECTOR:
element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion")))
使用XPATH:
element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']")))
透過組合ID 和類別屬性,即使只指定類,我們也可以精確定位到所需的元素。
以上是如何將 Selenium 的 EC.presence_of_element_ located() 與多個類別名稱一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!