2016-05-13 37 views
0

如何提取Selenium中表格中span元素的鏈接?如何使用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> 

我想驗證表中所有行中的鏈接是否正確。對於這一點,我想提取物作爲下面的文本信息:(有將只有一個span在一列元素)

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; 
} 

回答

1
var tableElem = driver.FindElement(By.Id("tabABC")); 

var linkElems = tableElem.FindElements(By.Tag("a")); 

var links = linkElems.Select(x => x.GetAttribute("href")).ToList() 

在情況下,它不會讓你直接從表

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(); 
0

得到的「a」標籤的得到第1列中的所有鏈路的元素,然後提取與鏈路

var linkElements = mytab.FindElements(By.CssSelector("#tabABC tr > td[1] a[href]")); 

foreach (var linkElement in linkElements) 
{ 
    var link = linkElement.GetAttribute("href"); 
} 
相關問題