首页 > 解决方案 > 需要python中硒的CSS模式来定位元素

问题描述

这是 HTML 语法,但我想使用 find_element_by_css_selector 使用值“ADD QUERY”定位元素。

HTML 图像: 图片 HTML

标签: python-3.xselenium-webdriverxpathcss-selectorswebdriverwait

解决方案


要定位元素,您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    element = driver.find_element(By.CSS_SELECTOR, "div.global-button-primary.telemetry-button")
    
  • 使用XPATH

    element = driver.find_element(By.XPATH, "//div[contains(@class, 'global-button-primary') and contains(@class, 'telemetry-button')][contains(., 'ADD QUERY')]")
    

理想情况下,要定位您需要诱导WebDriverWait的元素visibility_of_element_located(),您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.global-button-primary.telemetry-button")))
    
  • 使用XPATH

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class, 'global-button-primary') and contains(@class, 'telemetry-button')][contains(., 'ADD QUERY')]")))
    
  • 注意:您必须添加以下导入:

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

推荐阅读