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

发布于 2024-08-04 08:48:53 字数 268 浏览 5 评论 0原文

我有以下行适用于 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

总攻大人 2024-08-11 08:48:53

样式属性和 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 结构,在其中断言输入,如果失败,您可以捕获它并使用大写断言相同的输入(这种方式在 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:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文