所以,我正在使用 zats 进行gui测试,我想知道是否有任何方法可以通过UATD在ZATS中查询ui元素而不是id由动态元素不存在。我已经为我动态生成的gui元素编写了IDGenerator(现在它为UuiD设置了所有元素)。现在我需要通过UuiD查询某个元素。例如像这样desktopAgent.query"listbox[uuid='listbox_104']"
没有任何反应。
所以这个方法通过UuiD返回组件列表
public List<ComponentAgent> queryAllByRegex(DesktopAgent desktop, String component) {
List<ComponentAgent> componentList = new ArrayList<ComponentAgent>();
// getting the last counter value for the desktop
String MAX = (String) desktop.getAttribute(IDGenerator.LAST_COMPONENT_ID); // ?
int max =Integer.parseInt(MAX);
// generate the pattern Exmpl: "listbox_[0-9]"
String pattern = component + "_";
String counter = "";
for (int idx = 0; idx < MAX.length(); idx++) {
counter = counter + "[0-9]";
}
pattern = pattern + counter;
// genetrate regular expressions
Generex generex = new Generex(pattern);
// Using Generex iterator to iterate the recently generated list of strings by regex pattern
Iterator iterator = generex.iterator();
for(int i=0; i<=max;i++){
//removes extra nulls
String comp = removeNulls(iterator.next());
ComponentAgent agent = desktop.query(component+"[uuid='"+comp+"']");
if (agent != null) {
componentList.add(agent);
log.info("found by id" + comp);
}
}
return componentList;
}
这里我得到的是我曾经尝试过的
ComponentAgent agent = desktop.query(component +“[uuid ='”+ comp +“']”);
我真的很困惑,我不知道是否可以用ZATS测试我的zk-gui。 THX
答案 0 :(得分:0)
您可以创建这样的方法。
public ComponentAgent getComponentByUuid(DesktopAgent desktopAgent, String uuid) {
return new DefaultComponentAgent(
desktopAgent.getPages().get(0), desktopAgent.as(Desktop.class)
.getComponentByUuidIfAny(uuid));
}