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

标签 vbscript qtp case-sensitive

今天我在 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/

相关文章:

qtp - 恢复场景或在函数本身中处理大部分场景

node.js - 如何使用 nodejs + pg 进行区分大小写的查询

ascii - 大写和小写字母如何仅相差一位?

visual-studio - Visual Studio 2012 和经典 ASP 缩进(智能)

xml - 使用 vbscript 创建 XML 元素时如何避免 xmlns 属性?

java - 当 QTP 使用 Java Addin 安装时,用 Java 开发的客户端应用程序无法启动

testing - UFT 未在某些播放中识别窗口

C# Switch 语句中的大小写敏感性

javascript - 在 Internet Explorer 8 中使用 Javascript 在新 session 中打开新窗口

windows - 批处理文件中的 Unicode 字符