如何在浏览器中获取Ext js元素id或itemId值

时间:2017-09-21 11:33:22

标签: javascript php html extjs sencha-cmd

EXT VIEW PAGE

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

HTML OUTPUT:

<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>

但我需要在这里得到我的身份。

如果刷新按钮id将出现差异编号的页面

对于Ex:id =&#34; tableview-1738&#34;

那么我怎样才能从html页面中获取id或任何属性。 我需要在这个元素中测试自动化

1 个答案:

答案 0 :(得分:0)

ExtJS中的ID是动态的。因此,您必须使用标签字符串或网页设计来获取元素。这是一个基于标签和字段类型获取元素ID的代码。

    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;
}

Fn调用获取标签为“Password”的文本字段的id。

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