使用多个浏览器 - 对象标识问题

本主题介绍如何应对在标识应用程序/页面控件和对象时遇到的各种挑战。

跨浏览器的对象标识

在多个浏览器中测试 Web 应用程序和网页时,最大的挑战之一是标识应用程序/页面控件或对象。

由于浏览器架构存在差异,每种浏览器识别和显示的控件和/或对象是不同的。这种差异可能是视觉差异,也可能是肉眼看不到的属性差异。

但是,由于 UFT One 使用如 HTML 标记中所述的属性 (可见属性和隐藏属性),因此不同的浏览器类型可能存在对象标识问题。

这可能是由于浏览器布局设置不同等基本设置而导致。例如,每种浏览器类型构造其工具栏、书签和选项卡布局的方式不同。但是,正因为如此,可用于存放浏览器内容的空间量是不同的,同样,内容的显示也不同。

如果使用基于位置的描述属性来标识应用程序中的不同对象,则浏览器的布局可以更改这些属性。

返回页首

浏览器之间的对象属性差异

此外,对象属性差异还会导致出现一个潜在问题。在每个浏览器中,给定对象的属性可能不同 (甚至在应用程序或网页使用 CSS 标准化应用程序或页面元素的外观时也是如此)。

例如:

链接控件显示

链接控件在 Firefox 和 Chrome 上的显示与在 Internet Explorer 中不同。

每个浏览器都会以不同的方式标识在线购物网站的链接 (突出显示的字体、颜色和背景颜色属性): 如果使用这些属性来确保正确标识链接对象,或在检查点中使用这些属性,则可能会产生不同的结果。

例如:

  • 使用 Chrome 或 Safari 时,innertextoutertextinnerhtmlouterhtml 属性值可能不同于其他浏览器:

    请注意,虽然 innerhtml 和 outerhtml 的内容几乎相同,但是浏览器会清楚地表示出这些属性的不同之处。这样可能会导致对象出现标识问题,尤其当属性值是用于标识对象的关键元素时更是如此。

  • 在某些情况下,应用程序或网站可检测您正在使用的浏览器,然后更改页面的实际 HTML 内容。在这种情况下,UFT One 用于标识浏览器中对象的描述属性会查找特定的 HTML 标记,该标记可能存在于不同的浏览器中,也可能不存在。

  • 旧的浏览器或浏览器版本不支持某些 HTML5 输入类型。这意味着控件可能有不同的属性,具体取决于使用的浏览器。如果在支持 HTML5 的浏览器上录制测试但在不支持 HTML5 的浏览器上运行测试 (或反过来) UFT One 可能不能将测试中的对象描述匹配到要测试的网页中的对象。