【问题标题】:Finding HTML-element based on value根据值查找 HTML 元素
【发布时间】:2021-06-29 10:07:16
【问题描述】:

我正在尝试使用 selenium 的 .find_element_by_class_name() 从以下 html 中获取并单击链接:

<table id="article-table" class="table__full--secondary table__list--articles">
    <tbody><tr>
      <th>Förpackningsinnehåll</th>
      <th>Varunummer</th>
      <th>Produktkod</th>
      <th>NILPL packid</th>
      <th>Marknad</th>
      <th>Foretag</th>
      <th>Rec</th>
        </tr>
          <tr name="sokTraffArtikel_2020071500" class="table__list-item--secondary" data-href="visaArtikel.xhtml?id=202010071000" title="Go to">
            <td class="js-breakword" data-max-word-length="30">
              <a class="link-tab-focus" href="javascript:;">Blister, 30 tab</a>
            </td>
            <td>587100</td>
            <td>07350096049645</td>
            <td>202010071001985</td>
            <td name="marknadsfordArtikel">Ja</td>
            <td></td>
            <td>Ja</td>
          </tr>
          <tr name="sokTraffArtikel_20200715000027" class="table__list-item--secondary article-highlight" data-href="visaArtikel.xhtml?id=20201007100348" title="Go To">
            <td class="js-breakword" data-max-word-length="30">
              <a class="link-tab-focus" href="javascript:;">Blister, 50 tab</a>
            </td>
            <td>566567</td>
            <td>07350096049623</td>
            <td>202010071088665</td>
            <td name="marknadsfordArtikel">Ja</td>
            <td></td>
            <td>Ja</td>
          </tr>
      </tbody></table> 

通过使用以下代码,我可以使用来自的find_element_by_class("link-tab-focus") 点击链接:

<a class="link-tab-focus" href="javascript:;">Blister, 30 tabletter</a>

我无法弄清楚或找到任何答案是是否可以单击特定类,具体取决于下面“&lt;td&gt;”中的值:s。假设我要查找的值是“07350096049623”,有什么方法可以在托管我要查找的值的 td 类“js-breakword”中选择link-tab-focus?甚至可以根据值获取一个href(来自a类)吗?

【问题讨论】:

    标签: python html selenium


    【解决方案1】:

    在这种情况下,您将不得不使用 xpath:

    假设你想根据这个值07350096049623 从 td 中提取一个 href。

    //td[contains(text(), '07350096049623')]/../descendant::a
    

    并像这样使用它:

    a_href_value = find_element_by_xpath("//td[contains(text(), '07350096049623')]/../descendant::a").get_attribute('href')
    print(a_href_value)
    

    或者如果你只是想点击一个基于 td 的标签:

    然后这样做:

    a_href_value = find_element_by_xpath("//td[contains(text(), '07350096049623')]/../descendant::a")
    a_href_value.click()
    

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多