在Selenium中有没有像CSS这样的CSS选择器的已知解决方案?
$('.sss').find('>div.ui-collapsible-content')
适用于Chrome开发者工具。
在Selnenium,它抛出异常
OpenQA.Selenium.InvalidElementStateException : invalid element state: Failed to execute 'querySelector' on 'Element': '>div.ui-collapsible-content' is not a valid selector.
(Session info: chrome=33.0.1750.154)
(Driver info: chromedriver=2.8.241075,platform=Windows NT 6.1 SP1 x86)
我可以使用没有父部分的选择器
.find('div.ui-collapsible-content')
并且只采取第一个元素,但这是一个有点hacky解决方案,有人必须遇到类似的情况,现在找到比这更优雅的解决方案。
jsfiddle HTML示例 - http://jsfiddle.net/uHYZL/1/
答案 0 :(得分:2)
我不会称之为限制。这看起来像我预期的行为,因为我首先看不到>div.ui-collapsible-content
是有效的CSS selector。
$('.sss').find('>div.ui-collapsible-content')
的工作原因是因为您使用的是jQuery,它使用Sizzle作为引擎盖下的CSS选择引擎。它支持W3C规范不支持的内容,如:contains()
等。
我不确定你在这里要做什么。下面的东西不适合你需要吗?
var content = driver.FindElement(By.CssSelector(".sss > div.ui-collapsible-content"));
答案 1 :(得分:0)
您是否尝试过使用Xpath?它看起来非常可怕和复杂,但我相信你可以构建一个只能找到父母的选择器,然后从那里继续。
我会尝试构建一个但目前无法访问计算机