2017-09-21 1 views
1

EXT VUE PAGEComment obtenir l'identifiant éléments de poste ou de la valeur itemId dans le navigateur inspectent

text : ACTIONS, 
xtype : 'actioncolumn', 
draggable: false, 
dataIndex: 'message', 
items: 
{ 
    [ 
    { 
     glyph:'[email protected]', 
     name : 'edit_customer', 
     handler: function(grid, rowIndex, colIndex, item, event, record, row) 
     { 
     this.up("customer-list").getController().EditCustomer(record); 
     }, 
     } 
    ] 
    } 

HTML SORTIE:

<span role="button" title="" 
class="x-action-col-icon x-action-col-glyph x-action-col-6 x-hide-display" 
style="font-family:FontAwesome" 
data-qtip="Edit Customer"></span> 

Mais je dois obtenir ma carte d'identité ici.

Si rafraîchir la page que id bouton comeing nombre diff

Ex: id = "tableview-1738"

Alors, comment puis-je obtenir id ou tout attrbute de la page html driectly. Je dois tester l'automatisation dans cet élément

+0

voulez-vous obtenir la fonction de gestionnaire? –

+0

non, je ne veux pas que la fonction fourmi obtienne juste la valeur d'identification d'identification d'identification dans l'élément d'inspection –

+0

désolé je n'ai pas obtenu vous –

Répondre

0

Les ID dans ExtJS sont dynamiques. Vous devez donc utiliser la chaîne d'étiquettes ou la conception de votre page Web pour obtenir des éléments. Voici un code pour obtenir l'identifiant de l'élément en fonction de l'étiquette et du type de champ.

private static String getID(WebDriver driver, String elementText, String field_type, Integer occurence) throws InterruptedException { 

    String pageSource = driver.getPageSource(); 
    String regX = "<" + field_type + " id=\"([^\"]+)\" [^>]+>" + elementText + "<\\/" + field_type + ">"; 
    Pattern id = Pattern.compile(regX); 
    Matcher match = id.matcher(pageSource); 
    int count = 0; 

    while (count < occurence) { 
     count++; 
     match.find(); 
     switch (field_type) { 
     case "label": 
      returnID = match.group(1).replace("label", "input"); 
      break; 
     case "span": 
      returnID = match.group(1).replace("btnInnerEl", "btnIconEl"); 
      break; 

     } 
    } 
    return returnID; 
} 

Appel Fn pour obtenir l'identifiant d'un champ de texte avec l'étiquette "Mot de passe".

element = driver.findElement(By.id(ElementFinder.getID(driver, "Password", "label",1)));