Python 复杂类的selenium css选择器或xpath不';当作为脚本运行时无法工作
以下代码使用css选择器提取元素,在ipython3终端中工作,但在作为脚本运行时找不到元素:Python 复杂类的selenium css选择器或xpath不';当作为脚本运行时无法工作,python,xpath,selenium-webdriver,css-selectors,automated-tests,Python,Xpath,Selenium Webdriver,Css Selectors,Automated Tests,以下代码使用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-it
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')]")
如果使用SeleniumCSS选择器找不到任何元素,那么可以尝试使用xpath而不是css选择器
可以找到更多相关信息。如果使用selenium css选择器找不到任何元素,那么可以尝试使用xpath而不是css选择器
有关这方面的更多信息可以找到。只传递部分类名,如
driver.find_elements_by_css_selector(".search-result__occluded-item")
只传递部分类名,如
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')]")))
还可以动态分配一些类名。这就是为什么在没有的情况下使用复合名称作为
“搜索结果搜索结果\uuuu遮挡项目余烬视图”
可能无法工作的原因。这可能是一个时间问题:可以动态生成必需的元素,因此需要等待一段时间,直到它出现在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')]")))
还可以动态分配一些类名。这就是为什么使用复合名称作为
“搜索结果搜索结果\uuuu遮挡项余烬视图”
如果没有可能无法工作,xpath也无法工作。抱歉,我将更新问题XPath也不起作用。抱歉,我将更新问题Put wait before finding element。Put wait before finding element。