Java ZK-GUI测试:如何通过UuiD查询GUI元素?
因此,我正在使用zats进行gui测试,我想知道是否有方法可以通过zats中的UuiD而不是动态元素不存在的id来查询ui元素。我已经为动态生成的gui元素编写了IDGenerator(因此现在它将UuiD设置为所有元素)。现在我需要通过UuiD查询某个元素。例如,像这样的Java ZK-GUI测试:如何通过UuiD查询GUI元素?,java,testing,zk,Java,Testing,Zk,因此,我正在使用zats进行gui测试,我想知道是否有方法可以通过zats中的UuiD而不是动态元素不存在的id来查询ui元素。我已经为动态生成的gui元素编写了IDGenerator(因此现在它将UuiD设置为所有元素)。现在我需要通过UuiD查询某个元素。例如,像这样的desktopAgent.query“listbox[uuid='listbox\u 104']” 因此,这个方法通过UuiD返回组件列表 public List<ComponentAgent> queryAllB
desktopAgent.query“listbox[uuid='listbox\u 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;
}
public List queryalByRegex(DesktopAgent桌面,字符串组件){
List componentList=新的ArrayList();
//获取桌面的最后一个计数器值
String MAX=(String)desktop.getAttribute(IDGenerator.LAST_COMPONENT_ID);/?
int max=Integer.parseInt(max);
//生成模式Exmpl:“列表框[0-9]”
字符串模式=组件+“\”;
字符串计数器=”;
对于(int idx=0;idx 对于(inti=0;i您可以创建这样的方法
public ComponentAgent getComponentByUuid(DesktopAgent desktopAgent, String uuid) {
return new DefaultComponentAgent(
desktopAgent.getPages().get(0), desktopAgent.as(Desktop.class)
.getComponentByUuidIfAny(uuid));
}