【问题标题】:Selenium IDE click on link identified by text titleSelenium IDE 单击由文本标题标识的链接
【发布时间】:2017-06-24 14:18:44
【问题描述】:

我正在尝试单击可以使用项目标题找到的链接 (TransID)。我不知道 ID#,只知道它的前缀。表中有多行都具有相同的前缀,因此我想专门单击与项目标题中的文本匹配的链接,因为这是我唯一唯一的识别方式。

标题:TransID、流程类型、操作项、ID#、IN、Sname、项目标题等。

操作:单击项目标题包含文本的 TransID... 尝试并失败:
//span[contains(text(),'PRL123456')]/../preceding-sibling:://a[contains(text(),'PR')]

  <tbody>
  <tr>…</tr>
  <tr style="font-weight: bold;">
    <td class=" u-tL" headers="TRANS_ID">
       <a href="f?p=pagelocation data">PRXXXXXX </a></td>
    <td class=" u-tL" headers="PROCESS_TYPE">Process - New</td>
    <td class=" u-tL" headers="ACTION_ITEM">Prepare Form</td>
    <td class=" u-tR" headers="ID_NUMBER"> <a href="f?p=pagelocation  data,">100700</a></td>
    <td class=" u-tL" headers="IN">Investigator </td>
    <td class=" u-tL" headers="Sname">Sname </td>
    <td class=" u-tL" headers="PROJECT_TITLE">
        <span title="PRL123456 – My project title"> PRL123456 – My project title </span></td>
    <td class=" u-tL" headers="ASSIGNED_NO_OF_DAYS">0</td>
    <td class=" u-tL" headers="OPEN_DAYS">0</td>
    <td class=" u-tL" headers="FULL_STATUS_NAME">In Progress</td>
    <td class=" u-tL" headers="sort_flag_img">…</td>
    <td class=" u-tL" headers="C45130925951929411">-</td>
  </tr>

【问题讨论】:

    标签: selenium ide


    【解决方案1】:

    请试试这个 xpath:

    //table//span[contains(.,'PRL123456')]/../..//td[@headers='TRANS_ID']/a

    这个 XPath 应该可以解决您的问题。如果这不起作用,请告诉我。

    【讨论】:

      【解决方案2】:

      试试这个 XPath:

      .//span[contains(text(), 'PRL123456')]/parent::td/parent::tr/td[@headers='TRANS_ID']/a
      

      解释:

      • .//span[contains(text(), 'PRL123456')] - 查找 &lt;span&gt; 与包含 'PRL123456' 的文本
      • /parent::td - 找到父母&lt;td&gt;
      • /parent::tr - 找到父母&lt;tr&gt;
      • td[@headers='TRANS_ID'] - 查找 &lt;td&gt; 其中 headers 属性等于 'TRANS_ID'
      • /a - 找到孩子&lt;a&gt;

      【讨论】:

      • 我能够分别找到这两个元素,这是当我尝试将 trans_id 定位在与给定文本相同的行中时 - 那是它失败的时候。所以给定的 xpath //td[@headers='TRANS_ID']/a 将只选择第一个结果,无论它是否正确。我只想选择项目标题是否匹配,这就是为什么我尝试使用 //span[contains(text(),'PRL123456')]/../preceding-sibling:://a[contains(text (),'公关')]。我将使用一个变量来捕获项目标题中的 PRL,并且我想点击同一行中的 PR 链接。
      • 更新了我的解决方案,我喜欢在构建 XPath 时更加冗长。当我在几个月后重新访问 XPath 时,拥有描述性选择器(例如 parent)会有所帮助:)。
      猜你喜欢
      • 2014-03-26
      • 2017-05-27
      • 1970-01-01
      • 2020-01-20
      • 2018-01-17
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多