我安装了RFT 8.5
和JRE 7
。当我运行脚本时,它没有找到浏览器对象。
下面是我在RFt中用来查找brwoser对象的代码。
Dim Allobjects() as TestObeject
Allobjects=RootTestObject.GetRootTestObject.Find(".class","Html.HtmlBrowser"))
此处它正在返回Allbects.lenth=0
。因为我受到了打击。
任何人都可以帮我解决这个问题。
注意:我使用的是IE8
答案 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,以便浏览器启用。