我确定是否可以从 IWindow 获取 TestObjects 或将 IWindow 转换为 TestObject。也许还有另一种查找窗口的方法——通过 DomainTestObjects。我知道这不完全是问题的答案,但可能是:
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"));
}
}