0

使用 URL 启动 IE9 我发现启动了两个进程;父子进程。在 TestComplete 的 ObjectBrowser 中,两个进程都有一个 Page 节点和相关的子节点。

在我的 Silverlight AUT(被测应用程序)中有一个数据网格,我需要滚动它。在尝试滚动网格之前,我会检查滚动条。

但是,根据我使用的过程,我会得到不同的结果。

aqObject.IsSupported(
    Sys.Process("iexplore", 1).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")

aqObject.IsSupported(
    Sys.Process("iexplore", 2).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")

其中一个将返回 true,另一个将返回 false。Sys.Refresh我刷新世界或控件的多少似乎无关紧要Sys.Process...UIAObject("StepList").Refresh,一个总是失败而另一个通过。

这真的很奇怪,但如果它是可预测的,我可以解决它,但事实并非如此。有时父进程树有效,有时子进程树有效。

我的问题是..

  • 到底是怎么回事?
  • 我如何在启动应用程序时决定使用哪个流程进行自动化?
  • 在不遇到这个问题的情况下,我还能如何实现滚动列表的目标(这样我就可以找到我想要的行)?
4

1 回答 1

4

这是因为 Internet Explorer 的LCIE功能(松耦合 Internet Explorer)。它使 Internet Explorer 对每个打开的网页都有一个主进程和一个单独的进程。您可以在准备 Internet Explorer 以进行 Web 测试帮助主题中找到有关此功能的更多信息以及有关如何禁用它的详细信息。

此外,您可以将该工具的实例升级到 TestComplete 9。此版本允许访问页面对象,而不管浏览器的类型及其实例的索引如何。例如:

var page = Sys.Browser().Page("http://www.google.com");
于 2013-02-08T05:04:47.177 回答