【发布时间】:2016-10-03 13:53:38
【问题描述】:
我在数据库中有一个包含名称的表 - [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 :/ 刚刚注意到我得到了 null 的 href 因为没有 href 属性。检查时链接如下所示:
<a ng-click="HomePage.registerDetail($event, row.registerId)" class="ng-binding">myDynamicLink</a>
链接本身,当点击时,是:
http://myurl.com/#/entityOverview/[id]
那么现在的问题是,我怎样才能让 Selenium 单击该链接或获取该链接的 href?
【问题讨论】:
-
名称是href的一部分?
-
不,显示名称,id 是 href 的一部分。
-
您可以为您的 id 做一个 foreach,其中包含一个方法来检查基于 id 的 css 选择器的元素是否存在,例如 a[href*="id_variable"]
-
我编辑了这个问题。好像没有href。我猜该链接是由AngularJS即时构建的。不知道 ng-click 是如何工作的。 id 部分在最终链接中,但不在链接元素的 href 属性中。
标签: c# angularjs selenium selenium-webdriver webdriver