使用watin搜索级联元素

Kri*_*ish 4 c# watin

请告诉我搜索页面中级联元素的方法.

例如,页面中使用了10个锚元素标记.我可以使用FindBy方法简单地到达一个元素,即Element.FindBy().但是当我在页面css上有一个级联元素时该怎么办,比如".lineItem .title a"

pro*_*ick 5

我不确定你说"级联元素"是什么意思.您是否在寻找<a/>包含的元素元素与class="lineItem"它包含在元素与class="title"?如果是这样,你至少可以做两件事来找到那个元素:

  1. 使用 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"))))));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 Predicate<Link>

    ie.Link(link =>
    {
        var ancestor = link.Ancestor(Find.ByClass("title"));
        return ancestor != null && ancestor.Ancestor(Find.ByClass("lineItem")) != null;
    });
    
    Run Code Online (Sandbox Code Playgroud)

我打赌还有另一种方式.