ZK-GUI测试:如何通过UuiD查询gui-element?

时间:2015-11-12 12:44:19

标签: java testing zk

所以,我正在使用 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

1 个答案:

答案 0 :(得分:0)

您可以创建这样的方法。

public ComponentAgent getComponentByUuid(DesktopAgent desktopAgent, String uuid) {
    return new DefaultComponentAgent(
            desktopAgent.getPages().get(0), desktopAgent.as(Desktop.class)
            .getComponentByUuidIfAny(uuid));
}