使用 Selenium Driver C# 从 table 中获取最后一项

Get last item from a table using Selenium Driver C#

我是 selenium 驱动程序和 C# 的新手,我遇到的问题很少。

我有一个由 asp.net 网络表单应用程序创建的 table。我无法更改此软件,我需要从这个 table.

中取出最后一个 link

这是 table 由 asp.net webforms 应用程序生成的代码。

<div class="table table-responsive">
                            <table class="table table-bordered table-hover table-condensed" id="_ctl0_ContentPlaceHolder_grdResults" style="border-collapse:collapse;" border="1" rules="all" cellspacing="0">
 
 <tbody>
  <tr align="right" class="text-bold bg-gray">
   <td colspan="3"><span>1</span></td>
  </tr>
  <tr class="text-bold bg-gray">
   <td style="width:32px;"> 
   </td>
   <td>
    Description
   </td>
   <td>
    Expired?
   </td>
  </tr>
  <tr>
   <td>
                         <input name="chkView213311910" class="check" id="chkView213311910" style="border-style: none;" type="checkbox" value="213311910" /> 
                        </td>
   <td>
                         <table>
     <tbody>
      <tr>
       <td>
       </td>
       <td title="Expired" style="width: 20px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
       </td>
       <td style="width: 25px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
        <a href="ShowObjectFile.aspx?ObjectID=213311910" target="_blank">
         <i class="fa fa-lg fa-file-pdf-o" hspace="4" alt="File type PDF">
         </i>
        </a>
       </td>
       <td>
        <font color="dimgray">
         <a href="ViewObject.aspx?ObjectID=213311910">
          First Link
         </a>
        </font>
       </td>
      </tr>
     </tbody>
    </table>
                        </td>
   <td>
                         <span id="_ctl0_ContentPlaceHolder_grdResults__ctl3_lblCheckedOut">Não</span>
                        </td>
  </tr>
  <tr>
   <td>
                         <input name="chkView213312924" class="check" id="chkView213312924" style="border-style: none;" type="checkbox" value="213312924" /> 
                        </td><td>
                         <table>
     <tbody>
      <tr>
       <td>
       </td>
       <td style="width: 20px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
       </td>
       <td style="width: 25px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
        <a href="ShowObjectFile.aspx?ObjectID=213312924" target="_blank">
         <i class="fa fa-lg fa-file-pdf-o" hspace="4" alt="file Type pdf">
         </i>
        </a>
       </td>
       <td>
        <font color="dimgray">
         <a href="ViewObject.aspx?ObjectID=213312924">
          Second Link
         </a>
        </font>
       </td>
      </tr>
     </tbody>
    </table>
    </td><td>

除了点击最后一个link(第二个link),我 此外,我还需要将 ViewObject.aspx?ObjectID=213312924(这是我单击 link 时要去的地方)保存在一个变量上。

有人可以帮我解决这个问题吗?

您可以将所有链接存储在 ListIWebElements 中,然后选择最后一个。像这样:

IWebElement el = driver.FindElement(By.XPath(""));
IList<IWebElement> allLinks = el.FindElements(By.TagName("a"));
IWebElement linkYouNeed = allLinks[allLinks.Count- 1];