繁体   English   中英

UFT / QTP:无法在Firefox中访问Object.CurrentStyle

[英]UFT / QTP : unable to access Object.CurrentStyle in Firefox

我正在使用以下代码在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的结果

在浏览器之间切换时,我遇到了类似的问题。 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现在是一个包含样式属性数据的字符串,可以将其拆分,进行正则表达式或您需要的任何内容

`TestObject.Object.currentStyle.fontSize` 

只能在IE上运行而不能在FireFox上运行 ,我们可能会选择使用“ 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

FireFox DOM不支持与IE相同的所有方法。 我已经通过获取浏览器的“应用程序版本”属性并使用一个函数根据浏览器类型确定我要查找的值,从而解决了跨平台测试的类似问题。

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

您可以在此处找到FireFox页面/文档DOM。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM