Javascript 如何克服Selenium CSS仅限父级CSS选择器的限制
在Selenium中有没有一个已知的解决方案可以实现像这样的CSS选择器Javascript 如何克服Selenium CSS仅限父级CSS选择器的限制,javascript,html,css,testing,selenium,Javascript,Html,Css,Testing,Selenium,在Selenium中有没有一个已知的解决方案可以实现像这样的CSS选择器 $('.sss').find('>div.ui-collapsible-content') 在Chrome开发工具上运行良好 在Selnenium中,它抛出异常 OpenQA.Selenium.InvalidElementStateException : invalid element state: Failed to execute 'querySelector' on 'Element': '>di
$('.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')
只考虑第一个元素,但这是一个有点粗糙的解决方案,到目前为止,一定有人遇到过类似的情况,找到了比这个更优雅的解决方案
JSFIDLE HTML示例-我不认为这是一个限制。这看起来像是我期望的行为,因为我认为div.ui-collapsable-content首先不是有效的 之所以
$('.sss').find('>div.ui-collapsable-content')
起作用,是因为您使用的是jQuery,它在引擎盖下用作CSS选择引擎。它支持W3C规范不支持的东西,如:contains()
等
我不确定你在这里想要实现什么。下面这样的东西不适合你吗
var content = driver.FindElement(By.CssSelector(".sss > div.ui-collapsible-content"));
您尝试过使用Xpath吗?这看起来非常可怕和复杂,但我相信你可以构造一个选择器,它只能找到父母,然后从那里继续
我会尝试构造一个,但目前无法访问计算机我正在树结构中工作,所有具有.ui可折叠内容类的子级也被选中。@LIUFA:(我不经常使用jQuery,但是)我看不到
$('.sss')。查找('>div.ui-collapsable-content'))
和”.sss>div.ui-collapsable-content“
。任何可用的演示?sss仅用于示例目的,但将元素本身包含到选择器中的解决方案有效,只需等待10分钟即可接受答案。谢谢。刚意识到不是:)我一直在选择子元素,建议对IWebElement使用IWebDriver.FindElement()。包含元素本身的FindElements()将选择页面上的多个元素,而包含父类的FindElements()将只选择子元素。我们将平铺一个。@LIUFA:演示可能会有帮助。我使用了$('#问题小列表')。查找('>div.question-summary')
和$('#问题小列表>div.question-summary')
用于StackOverflow,在我看来是一样的。