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

标签 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 上工作?

最佳答案

样式属性和 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 中颜色不以这种方式解释,您可以在 catch 语句内用大写字母在定位器中添加 IE 方式。

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

关于java - 在 IE 中使用 Style 检查元素是否存在的语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395363/

相关文章:

java - 从 GUI 读取文本文件

java - KeyListener 在 Java 中不起作用

css - 跨度宽度相关问题

python - 如何在 Google Trends 中点击 Load More 按钮并通过 Selenium 和 Python 打印所有标题

sql - 读取表中的 XML

java - 如何在 Android 中从 Google 云端硬盘读取 .txt 文件?

java - 终端命令在 Runtime.exec() 中失败

javascript - 如何在 IE8 中调试堆栈溢出错误

asp.net - 如何解决之前提交的 "to display the website again, the web browser needs to resend the information you'问题”

xml - id 函数和无效 xml 的不同结果 :id attribute