在 IE 中使用 Style 检查元素是否存在的语法是什么
我有以下行适用于 Firefox
assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"color: rgb(255, 0, 0);\")]"));
但在 IE 中失败。
当我检查 IE 中的字段时,我看到以十六进制表示的颜色样式。您如何表示上面的行在 IE 上工作?
I have the following line that works for Firefox
assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"color: rgb(255, 0, 0);\")]"));
But Fails in IE.
When i inspect the field in IE, i see the color style represented in hexadecimal. How would you represent the line above to work on IE?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
样式属性和 IE 的主要问题是它以大写形式解释它们,无论 html 源有什么。
我们已将其记录在:
http://seleniumhq.org/docs/05_selenium_rc.html#ie- and-style-attributes
因此,对于该定位器,您应该首先使用:
如果颜色不匹配,您可以创建一个
try - catch
结构,在其中断言输入,如果失败,您可以捕获它并使用大写断言相同的输入(这种方式在 IE 和其他浏览器中都有效...如果在 IE 中颜色不以这种方式解释,您可以添加 IE 无论如何,如果开发人员通过向所需输入添加一个类,然后使用常规实现样式来
替换该静态样式,那么这个可怕的问题就会为您解决。 CSS。
The main problem with the style attributes and IE is that it interprets them in Uppercase, no matter what the html source has.
We've documented this in:
http://seleniumhq.org/docs/05_selenium_rc.html#ie-and-style-attributes
So, for that locator you should start by using:
In case the color is not matched, you can create a
try - catch
structure, where you assert for the input, if it fails, you catch it and assert for the same input using UPPERCASE (this way will work in both IE and the rest of the browsers...In case in IE the color is not interpreted that way, you can add the IE way in the locator with uppercases inside the
catch
sentence.Anyway, this awful problem would be fixed for you if the devs replace that static styling by adding a class to the desired input and then implementing the style using regular css.