2016-05-13 21 views
0

spanの要素をSeleniumのテーブルに抽出するにはどうすればよいですか?Seleniumを使用してテーブル内のスパン要素のリンクを抽出する方法

<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の要素があるでしょう。)

答えて

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

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

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

それはあなたを聞かせていない場合にはカラム1からすべてのリンク要素を取得し、とのリンクを抽出

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

テーブルから直接「」タグを取得します

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

foreach (var linkElement in linkElements) 
{ 
    var link = linkElement.GetAttribute("href"); 
} 
関連する問題