在IE中使用Style检查元素的语法是什么

时间:2009-09-08 17:54:12

标签: java internet-explorer xpath selenium hex

我有以下适用于Firefox的行

assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"color: rgb(255, 0, 0);\")]"));

但在IE中失败。

当我在IE中检查字段时,我看到以十六进制表示的颜色样式。您如何代表上述行来处理IE?

1 个答案:

答案 0 :(得分:1)

样式属性和IE的主要问题是无论html源是什么,它都以大写形式解释它们。 我们已将此记录在: http://seleniumhq.org/docs/05_selenium_rc.html#ie-and-style-attributes

因此,对于该定位器,您应该首先使用:

assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"COLOR: rgb(255, 0, 0);\")]"));

如果颜色不匹配,您可以创建一个try - catch结构,在该结构中断言输入,如果失败,则捕获它并使用UPPERCASE断言相同的输入(这种方式将起作用IE和其他浏览器......

如果在IE中颜色没有这样解释,你可以在定位器中添加IE方式,并在catch句子中添加大写字母。

无论如何,如果开发人员通过向所需输入添加一个类来替换静态样式,然后使用常规css实现样式,那么这个可怕的问题将为您修复。