UFT / QTP:无法访问Firefox中的object.currentStyle



我正在使用以下代码来获取> IE 的"链接"字体大小。

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

但是,如果我在 firefox 上使用相同的代码,则qtp/uft抛出错误:

对象需要" object.currentStyle"。

在大量的研究和探索之后,我发现对于Firefox而言,它不是Object.CurrentStyle,而是Object.Style,它是QTP中的内置函数,并且在下面使用了Code

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

,但我没有找到Firefox

的结果

我在浏览器之间切换时也有类似的问题。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或您需要的内容

`TestObject.Object.currentStyle.fontSize` 

只能在IE上工作,而不是在Firefox 上使用,我们可能可以选择使用"样式"代替" CurrentStyle"作为Firefox,但这无法正常工作。此外, fontsize在IE >和中读取为" fontsize"。

检索 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

firefox dom不支持与IE相同的所有方法。我通过获取浏览器的"应用程序版本"属性并使用函数来确定基于浏览器类型的我查找的值来解决跨平台测试的类似问题。

这不是迷人的,但为我的团队节省了很多头。

您可以在此处找到firefox页面/文档dom。

最新更新