我希望能够动态提取属于IWindow
的所有对象,然后将其转换为TestObjects
。
我使用以下内容列出了所有可用的IWindows
IWindow[] windows = root.getTopWindows();
然后,用户将根据其标题选择IWindow(使用windows[i].getText()
来标识正确的标题)。然后,我希望能够提取所有的孩子,以便我可以在以后的阶段对他们进行操作。对于TestObject实例,我已经可以提取所有子项 - 但是如何从抓取IWindow
到获取组成其用户界面的TestObjects
?
答案 0 :(得分:1)
我确信是否可以从IWindow获取TestObjects或将IWindow转换为TestObject。也许还有另一种方法可以通过DomainTestObjects找到windows。我知道这不是问题的答案,但可能是:
public void displayDomainsAndTopObjects()
{
DomainTestObject[] dtos = getDomains();
for (DomainTestObject dto : dtos)
{
System.out.println("--- " + dto.getName() + " ---");
TestObject[] tos = dto.getTopObjects();
for (TestObject to : tos)
{
System.out.println(to.getDescriptiveName());
}
}
}
也许你可以通过这种方式找到解决方法?例如。显示所有打开的浏览器:
public void displayBrowsers()
{
DomainTestObject[] dtos = getDomains();
List<DomainTestObject> htmlDomains = new ArrayList<DomainTestObject>();
for (DomainTestObject dto : dtos)
{
if (dto.getName().equals("Html"))
{
htmlDomains.add(dto);
}
}
List<BrowserTestObject> browsers = new ArrayList<BrowserTestObject>();
for (DomainTestObject htmlDomain : htmlDomains)
{
TestObject[] tos = htmlDomain.getTopObjects();
for (TestObject to : tos)
{
if (to.getProperty(".class").equals("Html.HtmlBrowser"))
{
browsers.add((BrowserTestObject) to);
}
}
}
System.out.println("Found " + browsers.size() + " browsers:");
for (BrowserTestObject browser : browsers)
{
System.out.println(browser.getProperty(".documentName"));
}
}