通过CSS选择器定位元素

时间:2019-02-26 14:16:24

标签: python css selenium css-selectors

我试图通过chrome中的CSS选择器来定位元素,我做到了:

  1. 右键单击对象
  2. 检查
  3. 右键单击chrome开发人员工具中的突出显示区域
  4. 复制
  5. 复制选择器。

我的代码是:

CreateANewDetector = driver.find_element_by_css_selector("#home-page > 
div.banner-container > div.banner-btns > div")

但是,结果是:

  

无法找到元素{“方法”:css选择器“,”选择器“,”选择器“   div.banner-container> div.banner-btns> div“)

出了什么问题?

2 个答案:

答案 0 :(得分:2)

使用WebDriverWait可以帮助您解决以下问题:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://url.com'
driver = webdriver.Chrome('d:\\path\\to\\chromedriver.exe')
driver.get(url)
wait = WebDriverWait(driver, 10)
create_a_new_detector = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#home-page > div.banner-container > div.banner-btns > div")))

希望这对您有帮助!

答案 1 :(得分:1)

$("#home-page .banner-container .banner-btns").find("div")

要找到一个元素,您必须使用jquery选择器,在这里我们遍历到末尾div,即.banner-btns和tryong在其中查找div。也许这种解释有效