使用OpenQA.Selenium时,我需要一个CssSelector的FindElement()。 在折叠或多个班级的情况下,这很容易。
<div class="myClass andMore">
<div class="hey">
<div class "deeper">
inner text 1
</div>
</div>
<div class="hey bad">
<div class "deeper">
inner text 2
</div>
</div>
<div class="hey">
<div class "deeper">
inner text 3
</div>
</div>
</div>
要获得“内部文本2”,我可以执行以下操作:
string innerTxt2 = browserClient.FindElement(By.CssSelector("myClass.andMore .hey.bad .deeper"))
.Text;
然而,我无法理解如何选择全部“嘿”除了“嘿坏”,然后选择“更深”div中的文本。
我想得到:
List<string> text1_and_text3 = browserClient.FindElement(By.CssSelector("myClass.andMore.hey:not('hey.bad').deeper)
.Select(el=>el.Text)
.ToList()"
然而,抛出异常,说“不是有效的选择器” 试图关注this post和this one,但没有运气
我需要纯粹使用css选择器查询(希望最小Linq / for-loops)
答案 0 :(得分:1)
您可以使用xpath获得所需的一切:
browserClient.FindElement(By.XPath("//div[contains(@class, 'hey') and not(contains(@class, 'bad'))]/div")