【问题标题】:How to get data of html table with selenium python如何使用 selenium python 获取 html 表的数据
【发布时间】:2020-07-03 00:31:59
【问题描述】:

我想用 selenium 从动态表中获取一些 td 数据并将它们推送到数组中。 我尝试使用:

driver.find_elements_by_class_name("row_data")

然后获取 html 然后找到 td 但列表元素无法获取属性 innerHTML ...

<tr class="row_data text-silver">
                <td class="link">
                        <a href="/Account/UserCompleteRegister" data-toggle="tooltip" data-placement="left" title="ویرایش" class="btn btn-info btn-xs btnEditUser">
                            <i class="fa fa-edit"></i>
                        </a> 
مرضیه<input type="hidden" value="1332162477" class="userId">
                </td>
<td class="text-right">
ایرج ساعی 

</td>
<td class="text-right">
6180033005  

</td>
<td class="text-right">


</td>
<td class="text-right">
25 سال و 2 روز    

</td>
<td class="text-right">

<span class="GenderText">زن</span>


</td>
</tr>

【问题讨论】:

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

有关您正在寻找的数据的更多信息将有助于我们以规范的方式构建答案。但是,由于&lt;tr&gt; 节点的 class 属性包含 row_datatext-silver,您需要诱导 WebDriverWait对于visibility_of_element_located(),您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "tr.row_data.text-silver))).text)
    
  • 使用XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//tr[@class='row_data text-silver']"))).text)
    
  • 注意:您必须添加以下导入:

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

【讨论】:

    【解决方案2】:

    如果您的页面上只有一个表格并且您想使用 xpath,那么请参考以下解决方案:

    1.  //table//td[*]      
    2.  //table//tr//td[*]
    

    或者提供特定的表ID来处理你的表

    【讨论】:

      猜你喜欢
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多