【发布时间】:2012-11-07 03:15:43
【问题描述】:
SeleniumHQ 表示每个驱动程序都支持其浏览器支持的任何 CSS 选择器。根据this site,IE 9 应该支持 :nth-of-type() 选择器。但是,当我在此选择器上执行 findElements 时,我似乎从 RemoteWebDriver 类的深处得到了 NullPointerException。我的By.cssSelector 看起来像这样:
table#ucsp_dgMultiSelect tr:nth-of-type(2) input#cbPres
这在 Chrome 上运行良好。也许 IE 9 将选择器放在中间有问题,我不知道,但这会破坏我的很多代码。 :nth-of-type() 选择器已成为我在表格中识别 WebElement 定位器的首选。有没有其他人成功使用 :nth-of-type() 选择器作为 WebDriver 和 IE 9 的定位器?
我正在使用 IEDriverServer.exe.2.25.2.0,我的 IE 版本是 9.0.8112.16421 64 位
【问题讨论】:
-
那里似乎有问题。 IE9 确实支持 CSS 中的
:nth-of-type()。无论如何,如果您改用:nth-child()会怎样?对于tr元素,它们基本相同。 -
只要你没有一些讨厌的
colgroup或caption没有thead或tbody。 -
@canon:这仅在 XML 序列化标记中重要,其中标记中的
table > tr元素不会在 DOM 中分配自己的tbody。在 HTML 中,tr:nth-child(n)和tr:nth-of-type(n)对于任何n总是相同的。 -
@canon: 除非 WebDriver 使用 XML 解析器...
-
是的,它确实支持它。见quirksmode.org/css/contents.html
标签: css internet-explorer selenium css-selectors webdriver