在使用 VB 脚本的 hp-UFT 中,您能否在 VB 脚本中将 IE 浏览器命名为 window,以便您可以控制哪个 window 进行导航?

In hp-UFT using VB Script can you name an IE browser window in VB Script so that you can control which window does the navigation?

我知道如何打开新的 IE 浏览器和标签页,但是有没有办法说:

这是浏览器 1

这是浏览器2

browser2.navigate(aol.com)

browser1.navigate(whosebug.com)

类似于你的伪代码。

set IE1= CreateObject("InternetExplorer.Application")
IE1.Visible = True
IE1.Navigate URL1

set IE2= CreateObject("InternetExplorer.Application")
IE2.Visible = True
IE2.Navigate URL2

https://community.hpe.com/t5/Unified-Functional-Testing/Command-to-launch-browser-and-go-to-a-URL-in-QTP/td-p/4223362

UFT 中的浏览器可以使用任何独特的属性来识别,但是这些属性会随着您打开的 URL 的变化而变化,所以实际上有两个独立的属性可以用来识别浏览器

1) 创建时间:这是创建浏览器的时间,第一个浏览器是 0,第二个是 1,第三个是 2。

2) hwnd :它是浏览器的 windows 句柄,它是 windows OS 用来标识它创建的对象的编号。

现在有了这种理解,您可以在 UFT 中为多个浏览器创建浏览器对象

1) 简单地创建浏览器对象。 2) 创建浏览器对象

Set Browser1 = Browser("CreationTime:=0")
set Browser2 = Browser("CreationTime:=1")
.
.
.
.
.
.
set Browsern = Browser("CreationTime:=n-1")

你也可以使用hwnd,但它不会像创建时那么容易。

现在,我们也可以使用CreateObject来创建IE的对象,但是下面是这样做的缺点

1) CreateObject("InternetExplorer.Application") 可以与最新版本的 IE 一起使用,对于旧版本,它的 CreateObject("Internet.Application") 对于未来版本,它可能是其他东西。

2) 您将失去使用内置 UFT 函数的能力,因为当您使用 createobject 时,只有浏览器公开的函数 api 是可见的(在 UFT 的术语本机函数和属性中) .这意味着

如果使用createobject函数创建浏览器对象,则不能编写下面的代码

Browser1.Sync

您将不得不在 Readystate 属性 上使用不可靠的循环。

您可以使用浏览器的OpenURL property,这个属性是在创建浏览器时设置的,并且在其整个生命周期内都是一致的。

首先将浏览器启动到特定 URL(这可以用来识别浏览器),然后导航到测试的实际部分。我看到 http://example.com 忽略了 URL 参数,因此您可以使用它。

例如

SystemUtil.Run "Chrome.exe", "example.com/?first"     
SystemUtil.Run "Chrome.exe", "example.com/?second"

Browser("OpenUrl:=.*first").Navigate "zombo.com"
Browser("OpenUrl:=.*second").Navigate "whosebug.com/users/3848"