2010-09-07 12 views
0

tout d'abord le code ci-dessous fonctionne pour mon application pour les navigateurs non-dire (je suis en Perl avec le sélénium pour les tests de ExtJS):comment sélectionner combobox item internet explorer pour l'application extjs?

http://seleniumexamples.com/blog/examples/select-an-option-from-an-extjs-combobox/

Malheureusement, la bibliothèque XPath équivaut à zéro XPath compte si j'ose ajouter la condition de visibilité. Le contenu de la page change, donc d'abord j'ai une liste d'objets combobox (ceci je peux cliquer sur) puis plus tard il y a deux listes. Quand j'adresse la 2ème liste, le premier élément de la liste est cliqué (ils ont le même contenu et aucun identifiant). L'utilisation de last() n'a pas aidé.

J'ai essayé un zillion différent xpaths mais je n'ai pas pu sélectionner un élément d'une deuxième liste déroulante dans extjs. le sélénium renvoie la source html correcte mais je ne peux pas arriver à la 2ème combobox. Si j'ouvre le 2ème combo pour la première fois, je ne peux pas sélectionner les éléments dans le premier.

À un certain moment j'avais l'espoir que cela fonctionnerait:

if($comboindex==1) 
    { 
     $locator="//div[contains(\@class, 'x-combo-list')]/descendant::div[contains(\@class, 'x-combo-list-item')][text()='".$combovalue."']"; 
    } 
    else 
    { 
     $locator="//div[contains(\@class, 'x-combo-list')]/following::div[contains(\@class, 'x-combo-list-item')][text()='".$combovalue."']"; 
    } 

mais il n'a pas ...

Répondre