我在 IE 7、8、9 中使用 selenium,由于某种原因,一些 CSS 3 定位器在 IE 7 和 9 中工作,但不是 8。这是定位器的代码:
即 9
tab = driver.find_element_by_css_selector('ul.tabs:nth-of-type(1) li:nth-of-type(%d)' % x)
即 7
tab = driver.find_element_by_css_selector('ul.tabs:eq(1) li:nth-child(%d)' % x)
但在 IE 8 中,使用nth-child, or :eq, or nth-of-type
定位器会产生一个 WebDriverException,表示它找不到该元素。
此外,上面的代码通过开发控制台在 IE 8 上运行,它只是不适用于 selenium(可能是因为 selenium 使用 Sizzle 作为选择器)。
谁能告诉我为什么这在 IE 8 上不起作用,或者提出可行的解决方法。ul.tabs:eq(1) > li:nth-child(%d)
(我已经尝试过在选择器之间插入s 之类的东西>
,但这没有用)
我正在使用 selenium server 2.23,带有 IEDriverServer 32 位和 python 2.23 API。