【问题标题】:How to iterate sub elements of <ul> in Selenium with C#如何使用 C# 在 Selenium 中迭代 <ul> 的子元素
【发布时间】:2017-01-13 03:54:15
【问题描述】:

我正在尝试使用 C# 在 Selenium 中迭代 &lt;li&gt; 对象的 &lt;ul&gt; 项目。我对它很陌生,并试图找到一种简单的方法为我的测试项目编写代码。

这是我的示例 html 代码,我想访问下面的链接...

<ul class="list-menu">
    <li>
        <ul>
           <li><a class="head" href="/seramik-banyo-urunleri">Seramik Banyo &#220;r&#252;nleri</a></li>
           <li><a href="/seramik-banyo-urunleri/lavabo">Lavabo</a></li>
           <li><a href="/seramik-banyo-urunleri/klozet">Klozet</a></li>

我的 c# 代码如下所示

IList<IWebElement> results = driver.FindElements(By.XPath("//div[@class='list-menu']/li/lu/li"));

但它没有得到链接。我该怎么做才能解决这个问题?

【问题讨论】:

    标签: c# html css selenium


    【解决方案1】:

    XPath 表达式中有错字,请替换:

    //div[@class='list-menu']/li/lu/li
    

    与:

    //div[@class='list-menu']/li/ul/li
    

    或者,您可以使用更紧凑的 CSS 选择器

    driver.FindElements(By.CssSelector(".list-menu > li > ul > li"));
    

    其中&gt; 表示直接的父子关系。

    【讨论】:

    • 天哪,非常感谢。多么愚蠢的错误。另外,感谢最后一个例子。像上一个那样编码要容易得多
    • @ayilmaz - 我也犯了这样的愚蠢错误。首先检查您的 xpath 或其他定位器总是好的。您可以在堆栈跟踪中看到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多