WebDriver C# - 将WebElement转换为String

时间:2017-03-10 13:47:53

标签: c# selenium selenium-webdriver enums

我正在运行一些C#Selenium WebDriver测试a)从字典中提取已知链接文本列表,b)从目标网站中提取相同列表然后c)进行比较在网页上看到任何意外/新/删除。

然而,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

是否有人知道如何将链接文本捕获为字符串以将其返回以进行比较或如何将上述内容转换为字符串?

谢谢,

标记。

1 个答案:

答案 0 :(得分:3)

ToString()返回表示IWebElement对象的字符串。 相反,请使用Text属性

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