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或任何属性。 我需要在这个元素中测试自动化
答案 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)));