2010-07-07 4 views
4

Veuillez me dire comment rechercher un élément en cascade dans une page.Recherche d'un élément en cascade à l'aide de watin

Par exemple, 10 balises d'élément d'ancrage sont utilisées dans une page. Je peux simplement atteindre un élément en utilisant la méthode FindBy, c'est-à-dire Element.FindBy(). Mais que faire quand j'ai un élément en cascade sur une page css comme ".lineItem .title un"

+0

Pourquoi est-ce marqué C? – Artelius

+0

Je pense qu'il ment C#. Retagé. – prostynick

Répondre

5

Je ne suis pas sûr de ce que vous voulez dire en disant "élément en cascade". Cherchez-vous l'élément <a/> contenu dans l'élément avec class="lineItem" qui est contenu dans l'élément avec class="title"? Si oui, il y a au moins deux choses que vous pourriez faire, pour trouver cet élément:

  1. Utilisez 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. Utilisez Predicate<Link>

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

Je parie qu'il est une autre façon.

Questions connexes