4

我必须处理这样的表:

<table id="product">
  <tr>
    <td data-sortable-id="ax01">Axe</td>
    <td>Wood</td>
    <td>Red</td>
  </tr>
  <tr>
    <td data-sortable-id="ha01">Hammer</td>
    <td>Iron</td>
    <td>Black</td>
  </tr>
  <tr>
    <td data-sortable-id="na01">Nail</td>
    <td>Metal</td>
    <td>Black</td>
  </tr>
  <tr>
    <td colspan="3">3 Products Listed</td>
  </tr>
</table>

如何选择所有td具有属性的元素data-sortable-id?我在 Google 搜索中找不到任何关于按属性查找元素的内容(没有值,只有属性自己的名称)。

我试过类似的东西

x = webdriver.find_elements_by_xpath("//td[@data-sortable-id]")
print(len(x))

但结果为 0。

4

1 回答 1

2

要查找所有<td>具有属性data-sortable-id的标签,您可以使用以下粒度xpath

"//table[@id='product']/tr//td[@data-sortable-id]"

也许您需要将WebDriverWaitexpected_conditions子句结合为visibility_of_all_elements_located,如下所示:

x = WebDriverWait(webdriver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//table[@id='product']//tr//td[@data-sortable-id]")))
print(len(x))
于 2018-03-23T08:36:33.833 回答