【问题标题】:How to locate the span element with Xpath Selenium and Python如何使用 Xpath Selenium 和 Python 定位 span 元素
【发布时间】:2021-05-03 20:24:39
【问题描述】:

我的 HTML 格式如下:

***button class="btn 授权解锁"

span>验证

按钮***

所以当我使用“browser.find_element_by_xpath('//span[@class= "btn authorize unlocked"]')” 要找到这个按钮,它找不到。

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class = "btn authorize unlocked"]"} 

那么我应该改变什么?

【问题讨论】:

    标签: python-3.x selenium-webdriver xpath css-selectors webdriverwait


    【解决方案1】:

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

    • 使用css_selector

      element = driver.find_element(By.CSS_SELECTOR, "button.btn.authorize.unlocked > span")
      
    • 使用xpath

      element = driver.find_element(By.XPATH, "//button[@class='btn authorize unlocked']/span[text()='Authenticate']")
      

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

    • 使用CSS_SELECTOR

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.btn.authorize.unlocked > span")))
      
    • 使用XPATH:

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//button[@class='btn authorize unlocked']/span[text()='Authenticate']")))
      
    • 注意:您必须添加以下导入:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2017-11-23
    • 2020-09-23
    相关资源
    最近更新 更多