2017-03-10 99 views
0

我正在運行一些C#Selenium WebDriver測試a)從字典中拉出已知鏈接文本的列表,b)從目標網站拉同一列表,然後c)做一個比較看到網頁上的任何內容都是意外的/新的/刪除的。WebDriver C# - 將WebElement轉換爲字符串

但是,WebDriver打得不好。

我有一個代表鏈接文本和鏈接的鍵/值列表。

public static IDictionary<topNavigation, string> TabLinkURL 
= new Dictionary<topNavigation, string> 
{ 
    { topNavigation.News, "http://www.bbc.co.uk/news/" }, 
    { topNavigation.Sport, "http://www.bbc.co.uk/sport/" }, 
    { topNavigation.Weather, "http://www.bbc.co.uk/weather/" } 
}; 

在下面的代碼中,我會從網頁上獲取鏈接。

var locateTheLinkSection = Driver.Instance.FindElement(By.XPath("//ul[@class='nav nav-tabs']")); 
var actuaLinkSetCount = locateTheLinkSection.FindElements(By.TagName("a")); 

List<string> actualLinkList = new List<string>(); 

foreach (var item in actuaLinkSetCount) 
{ 
    actualLinkList.Add(item.ToString()); 
} 

Console.WriteLine("-----------------------------"); 
Console.WriteLine("The links-text set on the page is:"); 
int a = 1; 
foreach (var link in actualLinkList) 
{ 
    Console.WriteLine($"  {a}: {link}"); 
    a++; 
} 

的想法是我可以比較已知的鏈接位置(從上面的字典值)針對來自網頁後面的鏈接。然而,一切又回到那就是:

The links-text set on the page are: 
1: OpenQA.Selenium.Firefox.FirefoxWebElement 
2: OpenQA.Selenium.Firefox.FirefoxWebElement 

有誰知道如何可以獲取鏈接文本字符串返回它比較或如何將上述轉換爲字符串?

謝謝,

馬克。

回答

3

ToString()返回代表IWebElement對象的字符串。 而是使用Text屬性

foreach (var item in actuaLinkSetCount) 
{ 
    actualLinkList.Add(item.Text); 
}