使用Selenium和C#验证动态链接是否显示在页面上

时间:2016-09-28 09:39:17

标签: c# angularjs selenium selenium-webdriver webdriver

我在数据库中有一个名字表 - [id] [name] 我还有一个网页,其中我有一个包含所有名称的通用页面,每个名称都是一个链接。

目前我正在检查数据库中的所有名称是否都显示在页面上。我想检查所有名称是否是实际链接。我开始尝试从页面获取所有链接:

[FindsBy(How = How.TagName, Using = "a")]
public IList<IWebElement> allLinks { get; set; }

并将它们放在像这样的列表中

    foreach (IWebElement element in allLinks)
       {
           try
           {
               myLinkList.Add(element.GetAttribute("href"));
           } catch (Exception e)
           {
               throw;
           }
       }

不幸的是,我只从.GetAttribute("href")

获得了空值

我做错了什么?

编辑:我可能正确地做了一切,但是AngularJS:/刚注意到我为href得到了null,因为没有href属性。检查时,链接如下所示:

<a ng-click="HomePage.registerDetail($event, row.registerId)" class="ng-binding">myDynamicLink</a>

点击链接本身是:

http://myurl.com/#/entityOverview/[id]

现在问题是,如何让Selenium点击该链接或获取该链接的href?

1 个答案:

答案 0 :(得分:0)

这种情况下,没有hRef属性,因为它使用click事件触发动作就像按钮一样(使用&#34; a&#34;而不是&#34;按钮&#34;只是为了看看和感觉链接类型)。你可以检查ng-click属性而不是href