请告诉我搜索页面中级联元素的方法。
例如,页面中使用了10个锚元素标记。我可以使用FindBy方法(即Element.FindBy())简单地到达一个元素。但是当我在页面css上有一个级联元素时该怎么办,比如“.lineItem .title a”
答案 0 :(得分:5)
我不确定你说“级联元素”是什么意思。您是否正在寻找<a/>
元素中包含的class="lineItem"
元素,该元素包含在class="title"
元素中?如果是这样,你至少可以做两件事来找到那个元素:
使用Find.ByExistenceOfRelatedElement<T>(ElementSelector<T> selector)
ie.Link(
Find.ByExistenceOfRelatedElement<Element>(link => link.Ancestor(
Find.ByClass("title")
&& Find.ByExistenceOfRelatedElement<Element>(linksAncestor => linksAncestor.Ancestor(
Find.ByClass("lineItem"))))));
使用Predicate<Link>
ie.Link(link =>
{
var ancestor = link.Ancestor(Find.ByClass("title"));
return ancestor != null && ancestor.Ancestor(Find.ByClass("lineItem")) != null;
});
我打赌还有另一种方式。