【问题标题】:How to locate the element using XPath Selenium and Python如何使用 XPath Selenium 和 Python 定位元素
【发布时间】:2022-01-13 18:20:42
【问题描述】:

我需要使用 python selenium 从这个 HTML 中获取数字“3”

<div class="number">3</div>

这是 XPATH:

//*[@id="roulette-recent"]/div/div[1]/div[1]/div/div

我尝试了类似的东西

number = navegador.find_element_by_xpath('//*[@id="rouletterecent"]/div/div[1]/div[1]/div/div').get_attribute('class')

【问题讨论】:

    标签: python selenium selenium-webdriver xpath webdriverwait


    【解决方案1】:

    如果这个 xpath

    //*[@id="rouletterecent"]/div/div[1]/div[1]/div/div
    

    代表节点:

    <div class="number">3</div>
    

    如果你想从中提取文本,你应该使用:

    number = navegador.find_element_by_xpath('//*[@id="rouletterecent"]/div/div[1]/div[1]/div/div').get_attribute('innerText')
    print(number)
    

    number = navegador.find_element_by_xpath('//*[@id="rouletterecent"]/div/div[1]/div[1]/div/div').text
    print(number)
    

    【讨论】:

      【解决方案2】:

      我想你正在寻找:

      number = navegador.find_element_by_xpath('//*[@id="rouletterecent"]/div/div[1]/div[1]/div/div').text
      

      【讨论】:

        【解决方案3】:

        要打印文本3,您可以使用以下任一Locator Strategies

        • 使用 css_selectorget_attribute("innerHTML"):

          print(navegador.find_element(By.CSS_SELECTOR, "#roulette-recent div.number").get_attribute("innerHTML"))
          
        • 使用xpathtext属性:

          print(navegador.find_element(By.XPATH, "//*[@id="roulette-recent"]//div[@class='number' and text()]").text)
          

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

        • 使用 CSS_SELECTORtext 属性:

          print(WebDriverWait(navegador, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#roulette-recent div.number"))).text)
          
        • 使用 XPATHget_attribute("innerHTML"):

          print(WebDriverWait(navegador, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@id="roulette-recent"]//div[@class='number' and text()]"))).get_attribute("innerHTML"))
          
        • 注意:您必须添加以下导入:

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

        您可以在How to retrieve the text of a WebElement using Selenium - Python找到相关讨论


        参考文献

        链接到有用的文档:

        【讨论】:

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