[英]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.