使用selenium c#在一行中单击操作链接(删除、查看、编辑)
本文关键字:编辑 操作 链接 删除 单击 查看 一行 selenium 使用 | 更新日期: 2023-09-27 18:08:04
我想问一些关于如何单击我在表中的操作链接的帮助。
HTML页面如下所示:
Lebron James | EDIT | VIEW | DELETE
Chris Paul | EDIT | VIEW | DELETE
Carmelo Anthony | EDIT | VIEW | DELETE
html格式如下所示。
<tr>
<td>Lebron James</td>
<td>
<a href="/Player/Edit/282">Edit</a>
<a href="/Player/View/282">View</a>
<a href="/Player/Delete/282">Delete</a>
</td>
</tr>
我尝试了下面的语法。
-
webDriver.FindElement(By.XPath("//td[contains(text(), 'Chris Paul')]"
+webDriver.FindElement(By.CssSelector("//td/a[contains(href='"/Player/Delete/)]")))).Click();
-
webDriver.FindElement(ByXPath("//td[contains(text(), 'Carmelo Anthony')]//td/a(href="/Player/Delete")")).Click();
上面的语法可能不准确,我已经尝试了一段时间,但他们看起来类似。我能够在行中找到该名称,但无法单击与该名称并行的操作链接。
您应该尝试使用xpath
与following-sibling
轴如下:-
-
点击
Edit
链接:-webDriver.FindElement(By.XPath(".//td[text() = 'Lebron James']/following-sibling::td/a[text() = 'Edit']")).click();
-
点击
View
链接:-webDriver.FindElement(By.XPath(".//td[text() = 'Lebron James']/following-sibling::td/a[text() = 'View']")).click();
-
点击
Delete
链接:-webDriver.FindElement(By.XPath(".//td[text() = 'Lebron James']/following-sibling::td/a[text() = 'Delete']")).click();
获得此选择器的另一种方法是:
//td[text()='Lebron James']/..//a[contains(@href, 'Edit')]
或者如果你喜欢文本:
//td[text()='Lebron James']/..//a[text()='Edit']
通过这种方式,您将搜索包含您需要的文本的td
,导航到父tr
,并在此找到包含您需要的href
值或文本的文本的链接。
如果你不关心名字,你可以使用css:
(href * = '编辑']