【问题标题】:How to extract element within a HTML Tag using Xpath in python?如何在 python 中使用 Xpath 提取 HTML 标签中的元素?
【发布时间】:2020-11-24 07:21:20
【问题描述】:

我有一个看起来像这样的 HTML 标记

<tr class="js-row  DC is-odd" data-nationality="Indian" data-team-id="3">
        <td class="top-players__freeze js-pos top-players__pos DC">2</td>
        <td class="top-players__freeze top-players__player">
            <div class="top-players__image">
                <img class="js-headshot" src="//static.iplt20.com/players/210/Photo-Missing.png" 

我正在尝试使用 XPath 提取数据国籍值,但我不太确定如何执行此操作。

在选择 tr 元素后,我尝试过这样的事情:

driver.find_elements_by_xpath("//tr[contains(@class,'js-row  DC is-odd')]/@data-nationality")

然而这并没有奏效。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    尝试使用get_attribute()元素方法。

    driver.find_element_by_xpath("//tr[contains(@class,'js-row  DC is-odd')]").get_attribute("data-nationality")
    

    https://www.geeksforgeeks.org/get_attribute-element-method-selenium-python/

    【讨论】:

      【解决方案2】:

      看来你已经够近了。假设 classdata-team-id="3" 中的值 DC 是元素内的两个唯一属性值,以打印 data-nationality 属性的值,即 Indian 你需要为visibility_of_element_located() 诱导WebDriverWait 并且可以使用以下Locator Strategies 之一:

      • 使用CSS_SELECTOR

        print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "tr.js-row.DC.is-odd[data-team-id='3']"))).get_attribute("data-nationality"))
        
      • 使用XPATH

        print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//tr[@class='js-row  DC is-odd' and @data-team-id='3']"))).get_attribute("data-nationality"))
        
      • 控制台输出:

        Indian
        
      • 注意:您必须添加以下导入:

        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
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        相关资源
        最近更新 更多