簡體   English   中英

當作為腳本運行時,復雜類的selenium css選擇器或xpath不起作用

[英]selenium css selector or xpath for complex class doesn't work when run as script

以下代碼使用css選擇器提取元素,在ipython3終端中工作,但在作為腳本運行時找不到元素:

from selenium import webdriver 
driver = webdriver.Chrome()

url = scrape_url + "&keywords=" + keyword
driver.get(url)
driver.find_elements_by_css_selector(".search-result.search-result__occluded-item.ember-view")

元素的復雜類:

"search-result search-result__occluded-item ember-view"

以下xpath在終端中工作,但不是作為腳本:

driver.find_elements_by_xpath("//li[contains(@class, 'search-result search-result__occluded-item')]")

如果你找不到selenium css選擇器的任何元素,那么你總是可以嘗試使用xpath而不是css選擇器。

有關這方面的更多信息,請點擊此處

只傳遞部分類名,如,

driver.find_elements_by_css_selector(".search-result__occluded-item")

這可能是一個時間問題:必需的元素可以動態生成,因此您需要等待一段時間,直到它出現在DOM

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver 
driver = webdriver.Chrome()

url = scrape_url + "&keywords=" + keyword
driver.get(url)
wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//li[contains(@class, 'search-result search-result__occluded-item')]")))

還可以動態分配一些類名。 這就是為什么使用復合名稱作為"search-result search-result__occluded-item ember-view"可能無法使用ExplicitWait

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM