使用watin搜索级联元素

时间:2010-07-07 05:08:34

标签: c# watin

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

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

1 个答案:

答案 0 :(得分: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"))))));
    
  2. 使用Predicate<Link>

    ie.Link(link =>
    {
        var ancestor = link.Ancestor(Find.ByClass("title"));
        return ancestor != null && ancestor.Ancestor(Find.ByClass("lineItem")) != null;
    });
    
  3. 我打赌还有另一种方式。