【问题标题】:Selenium select several elements except some classSelenium 选择除某些类之外的几个元素
【发布时间】:2018-08-14 02:43:27
【问题描述】:

使用 OpenQA.Selenium 时,我需要通过 CssSelector 查找元素()。 在折叠类或多个类的情况下,这很容易。

<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;

但是,我不明白如何选择 all “嘿” 除了 “嘿,糟糕”,然后在其“更深”的 div 中选择文本。

我想得到:

List<string> text1_and_text3 = browserClient.FindElement(By.CssSelector("myClass.andMore.hey:not('hey.bad').deeper)
                                            .Select(el=>el.Text)
                                            .ToList()"

但是,抛出异常,说“不是有效的选择器” 尝试关注 this postthis one 但没有运气

我需要纯粹使用 css 选择器查询来做到这一点(希望最小的 Linq / for-loops)

【问题讨论】:

    标签: c# selenium-webdriver


    【解决方案1】:

    您可以使用 xpath 获得所需的一切:

    browserClient.FindElement(By.XPath("//div[contains(@class, 'hey') and not(contains(@class, 'bad'))]/div")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多