如何在Selenium中的表中的span
元素中提取链接?
<table id="tabABC">
<tr>
<td>
<span id="randomidIdontknow">
<a style="color: red" href="http://google.com" target="_blank">FancyLink</a>
</span>
</td>
</table>
我正在尝试验证表中所有行中的链接是否正确。为此,我试图提取如下文字信息:
IWebElement mytab = Context.CurrentDriver.FindElement(By.Id("tabABC"));
ReadOnlyCollection<IWebElement> myRows = mytab.FindElements(By.XPath(".//tbody/tr"));
foreach (var myRow in myRows )
{
var myCol = myRow .FindElements(By.XPath(".//td"));
var res = myRow .FindElement(By.XPath(".//td[0]")).Text;
}
(列中只有一个span
元素。)
答案 0 :(得分:1)
var tableElem = driver.FindElement(By.Id("tabABC"));
var linkElems = tableElem.FindElements(By.Tag("a"));
var links = linkElems.Select(x => x.GetAttribute("href")).ToList()
如果它不允许您直接从表中获取'a'标记
var spanElems = tableElem.FindElements(By.Tag("span"));
var linkElems = spanElems.SelectMany(x => x.FindElements(By.Tag("a"));
var links = linkElems.Select(x => x.GetAttribute("href")).ToList();
答案 1 :(得分:0)
获取第1列中的所有链接元素,然后使用GetAttribute
var linkElements = mytab.FindElements(By.CssSelector("#tabABC tr > td[1] a[href]"));
foreach (var linkElement in linkElements )
{
var link = linkElement.GetAttribute("href");
}