【问题标题】:Find Elements by their Attribute in Python Selenium WebDriver在 Python Selenium WebDriver 中按属性查找元素
【发布时间】:2018-09-01 16:24:01
【问题描述】:

我必须处理这样的表格:

<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>

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

我尝试过类似的东西

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

但结果为 0。

【问题讨论】:

  • 给我们您迄今为止尝试过的初始代码
  • 尝试检查 xpath 中的 td 元素。
  • 关注这个stackoverflow.com/questions/49426387/…,我想对你有帮助。
  • @the.salman.a 我不知道你想给我看什么?我不明白..你能给我一点建议吗?
  • 我分享的链接有类似的问题,按照那个答案。可能您需要稍微修改该代码。但是,话又说回来,乐趣在于制作我们自己的代码。是不是!

标签: python selenium webdriver webdriverwait expected-condition


【解决方案1】:

要查找所有具有 data-sortable-id 属性的 &lt;td&gt; 标签,您可以使用以下粒度 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))

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 2017-08-05
    • 2015-04-10
    • 2012-12-12
    • 1970-01-01
    • 2012-12-26
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多