无法在RFT 8.5中找到浏览器对象

时间:2014-04-15 11:56:57

标签: rft

我安装了RFT 8.5JRE 7。当我运行脚本时,它没有找到浏览器对象。

下面是我在RFt中用来查找brwoser对象的代码。

Dim Allobjects() as TestObeject
Allobjects=RootTestObject.GetRootTestObject.Find(".class","Html.HtmlBrowser"))

此处它正在返回Allbects.lenth=0。因为我受到了打击。

任何人都可以帮我解决这个问题。

注意:我使用的是IE8

3 个答案:

答案 0 :(得分:1)

我也无法使用RootTestObject找到浏览器。但是可以使用Html域找到浏览器窗口:

startApp("Google");
startApp("asdf");
sleep(5);

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"));
}

输出:

Found 2 browsers:
https://www.google.ch/
http://www.asdf.com/

首先,我启动2个浏览器。然后我得到所有Html域测试对象。之后,我获取所有顶级对象并检查它们的类是否为Html.HtmlBrowser。

我希望有一个更简单的解决方案 - 期待看到一个:)

答案 1 :(得分:1)

尝试以下代码代码段:

 Dim Allobjects() As TestObject
 Allobjects = Find(AtDescendant(".class", "Html.HtmlBrowser"))

希望它有所帮助。

答案 2 :(得分:0)

浏览器是一个顶级窗口,所以你可以做的是: Dim Allobjects()作为TestObeject Allobjects =查找(AtChild(&#34;的.class&#34;&#34; Html.HtmlBrowser&#34)) &#39;上面的代码期望浏览器静态启用,也不需要RootTestObject,因为如果没有提供锚点,RFT将使用RootTestObject。

此外,如果浏览器未静态启用,那么您也可以使用:

DynamicEnabler.HookBrowsers()API,以便浏览器启用。