使用 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 时要去的地方)保存在一个变量上。
有人可以帮我解决这个问题吗?
您可以将所有链接存储在 List
个 IWebElements
中,然后选择最后一个。像这样:
IWebElement el = driver.FindElement(By.XPath(""));
IList<IWebElement> allLinks = el.FindElements(By.TagName("a"));
IWebElement linkYouNeed = allLinks[allLinks.Count- 1];
我是 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 时要去的地方)保存在一个变量上。
有人可以帮我解决这个问题吗?
您可以将所有链接存储在 List
个 IWebElements
中,然后选择最后一个。像这样:
IWebElement el = driver.FindElement(By.XPath(""));
IList<IWebElement> allLinks = el.FindElements(By.TagName("a"));
IWebElement linkYouNeed = allLinks[allLinks.Count- 1];