gpt4 book ai didi

vbscript - QTP 11问题: different results with different cases in VBScipt中的大小写敏感

转载 作者:行者123 更新时间:2023-12-02 20:21:44 25 4
gpt4 key购买 nike

今天我在 QTP 11 中发现了奇怪的行为:表达式

Browser().Page().WebElement("PositionManagerContainer").WebElement("LoadingMessage").Object.ParentNode.ParentNode

给出错误:需要对象“.Object.ParentNode”

但表达

Browser().Page().WebElement("PositionManagerContainer").WebElement("LoadingMessage").Object.parentNode.ParentNode

(.Object 的 ParentNode 成员的情况差异)正确且工作正常,没有任何错误。

浏览器是火狐浏览器。在 IE 中它运行良好。

有人可以解释为什么会发生这种情况吗?只是为了兴趣。

最佳答案

这是一个非常好的(而且微妙的)观点。一般来说,.Object 允许访问正在测试的应用程序中的 native 对象。由于 QTP 是基于 VBScript 的,这意味着测试对象的 .Object 属性是 IDispatch .

使用 IE 时,QTP 可以传递 MSHTML IE 公开的对象(并且支持 IDispatch),因为 MSHTML 设计为与 VBScript 一起使用,所以这些对象不区分大小写。然而,当使用 Firefox 时,浏览器不提供 IDispatch 支持对象。因此QTP必须创建一个代理对象,通过查询Firefox公开的对象来实现IDispatch。由于 Firefox 设计为使用 JavaScript(区分大小写),因此该代理对象自动区分大小写。

您看到的错误来自于第一个 ParentNode 返回 Empty 因此第二个 .ParentNode 抛出错误。

因此,在 Firefox 中使用 .Object 时,您必须为您访问的属性和方法使用正确的大小写。

关于vbscript - QTP 11问题: different results with different cases in VBScipt中的大小写敏感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com