Testing QTP:无法使用CSS&;尝试标识对象时索引属性

Testing QTP:无法使用CSS&;尝试标识对象时索引属性,testing,automated-tests,qtp,Testing,Automated Tests,Qtp,我试图在我的脚本中运行下面的代码行,但我得到一个错误,即在页面上找到了多个具有这些属性的对象 Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth").Click 因此,我尝试添加一个索引,如下所示: Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth", "index:=0").Click 但现在它根本检测不到任何物体。有人能帮我

我试图在我的脚本中运行下面的代码行,但我得到一个错误,即在页面上找到了多个具有这些属性的对象

Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth").Click
因此,我尝试添加一个索引,如下所示:

Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth", "index:=0").Click
但现在它根本检测不到任何物体。有人能帮我解决这个问题吗?谢谢



编辑:对于其他任何遇到此问题的人,结果证明我使用的是QTP10,正如莫蒂在下面指出的,CSS和Xpath支持只添加到QTP11中。

使用
CSS
Xpath
识别测试对象的支持添加到QTP11中,在您的评论中,您说您正在使用QTP10,这将解释您面临问题的原因

可能发生的情况是,QTP将
css
作为一个不可识别的属性忽略,因此您的描述匹配所有元素,然后当您添加
index:=0
时,它会带来一个无法单击的不可见元素(例如
HEAD
HTML

如果您只想匹配
className
,则可以使用QTP的
class
标识属性
(“class:=normalDayOfMonth”)


顺便说一句,
Highlight
函数是一个未记录的函数,类似于对象存储库的Highlight功能,在测试故障排除中非常有用。

QTP11中添加了对使用
CSS
XPath
识别测试对象的支持,在您的评论中,您说您正在使用QTP10,这将解释您面临问题的原因

可能发生的情况是,QTP将
css
作为一个不可识别的属性忽略,因此您的描述匹配所有元素,然后当您添加
index:=0
时,它会带来一个无法单击的不可见元素(例如
HEAD
HTML

如果您只想匹配
className
,则可以使用QTP的
class
标识属性
(“class:=normalDayOfMonth”)



顺便说一句,
Highlight
函数是一个未记录的函数,类似于对象存储库的Highlight功能,在故障排除测试中非常有用。

以下内容适用于IE8
浏览器(“谷歌”).Page(“谷歌”).WebElement(“css:=.gbts”,“index:=0”).Highlight
。请看看它是否适合你,如果不适合,请尝试发布更多信息。我得到了一个通用运行错误?我使用的是普通的Google.com URL我安装了QTP11和补丁QTPWEB_00090,也许你应该尝试安装这个补丁(如果你还没有)。我有QTP10,我认为它没有突出显示功能?我试着使用点击功能,但它重现了同样的问题。我使用的是公司计算机,因此很遗憾,我无法添加任何修补程序:(有什么明显的我可以忽略的吗?我已经用QTP10的解决方案更新了我的答案,请看一看。以下内容在IE8
浏览器(“谷歌”).Page(“谷歌”).WebElement(“css:=.gbts”,“index:=0”)上适用于我).高亮显示
。请查看它是否适用于您,如果不适用,请尝试发布更多信息。我得到了一个通用的运行错误?我使用的是常规的Google.com URL。我已经安装了QTP11修补程序QTPWEB_00090,也许您应该尝试安装此修补程序(如果您还没有)。我有QTP10,但我认为它没有突出显示功能?我尝试使用单击功能,但它重现了相同的问题。我在公司计算机上,因此很遗憾,我无法添加任何修补程序。:(有什么明显的我可以忽略的吗?我已经用QTP10的解决方案更新了我的答案,请看一看。我也成功地在其他情况下使用CSS。如果不是在QTP10中,那怎么可能呢?@khalid13你确定吗?这很奇怪,因为它们是在QTP11中添加的。是的,这行代码我正在使用el。)项目中的sewhere工作起来很有魅力:
.Link(“css:=.selective”,“index:=2”)。单击
,这就是为什么我对它不适用于WebElements感到困惑的原因@Motti@khalid13支持我的文件(以及QTP的文档)该CSS是在QTP11中添加的。可能是当您使用
Link
QTP仅返回
元素,而
.selectable
被忽略时,您是否可以创建一个包含可选和不可选元素的演示页面,看看CSS是否有任何作用?我刚刚创建了一个网页来测试我的理论,您似乎在e right-它忽略了CSS类规范,只是选择了可用的第一个链接。我将继续并接受您的答案;感谢您的帮助。:)@MottiI也成功地在其他情况下使用CSS。如果它不在QTP10中,那怎么可能呢?@khalid13你确定吗?这很奇怪,因为它们是在QTP11中添加的。是的,我在项目的其他地方使用的这行代码就像一个符咒:
.Link(“CSS:=.selective”,“index:=2”).单击
,这就是为什么我对它不适用于WebElements感到困惑的原因@Motti@khalid13支持我的文件(以及QTP的文档)该CSS是在QTP11中添加的。可能是当您使用
Link
QTP仅返回
元素,而
.selectable
被忽略时,您是否可以创建一个包含可选和不可选元素的演示页面,看看CSS是否有任何作用?我刚刚创建了一个网页来测试我的理论,您似乎在对-它忽略了CSS类规范,只是选择了第一个可用的链接。我将继续接受您的答案;感谢您的帮助。:@Motti