UFT / QTP:无法访问Firefox

时间:2015-05-08 05:40:19

标签: vbscript qtp hp-uft

我使用以下代码获取 IE 上“链接”的字体大小。

Browser("BB").Page("PP").Link("link").Object.CurrentStyle.fontSize

但是,如果我在 FireFox 上使用相同的代码,则QTP / UFT会抛出错误:

  

对象需要“Object.CurrentStyle”。

经过大量研究和探索后,我发现对于FireFox它不是Object.CurrentStyle,而是Object.Style,这是QTP中的内置函数,并在代码下面使用

Browser("BB").Page("PP").Link("link").Object.style.fontSize

但我没有获取firefox的结果

3 个答案:

答案 0 :(得分:0)

在浏览器之间切换时遇到类似问题。 IE有一个特殊的样式对象,在其他浏览器中不受支持。我建议一个更通用的策略,对待它的样式 - 一个html属性。你可以使用纯DOM,但是让我们使用UFT测试对象:

步骤1:找到要从中提取样式的html节点:
Set element = Browser("creationtime:=0").Page("title:=HelloWorld").WebElement("xpath:=//html/body/div[@id='something']")

第2步:提取样式数据
attributeValue = element.Object.GetAttribute("style")

attributeValue现在是一个包含样式属性数据的字符串,可以拆分,RegExp'd或者你需要什么

答案 1 :(得分:0)

`TestObject.Object.currentStyle.fontSize` 

仅适用于不在FireFox上的IE ,我们可以选择使用“Style”代替FireFox的“currentStyle”,但这样做不正常。此外, FontSize在IE中读作“FontSize”,在Firefox中读取“font-size”

Firefox

上的应用程序中检索所需信息
set FXObj= Browser("title:=Test_2").Page("title:=Test_2").Link("text:=link")

Set webElem = FXObj.Object
Set compStyle=Browser("title:=Test_2").Page("title:=Test_2").Object.defaultView.getComputedStyle(webElem, "")

fntsize = CompStyle.getPropertyValue("font-size")
Print fntsize

答案 2 :(得分:0)

FireFox DOM不支持与IE相同的所有方法。我通过获取浏览器的“应用程序版本”属性并使用函数根据浏览器类型确定我正在寻找的值来解决类似的跨平台测试问题。

它没有魅力,但它为我的团队节省了很多头。

您可以找到FireFox页面/文档DOM here