【问题标题】:How to find text in list, if they have a similar path如果它们具有相似的路径,如何在列表中查找文本
【发布时间】:2018-03-01 15:15:18
【问题描述】:

最近开始学习selenium,c#

请帮我解决我的问题。

在我的项目中,商品被添加到购物车中。 我需要检查它们是否已添加。为此,我试图找到使用 XPath、CssSelector 或 ClassName 的文本。但结果我有一个错误,驱动程序找到第一个元素,比较并显示错误:文本不匹配

如何让他在树下看得更远?

或者更短的方法?如果想象购物车中有 30 件商品,这个过程将需要很长时间......

例如,当我使用 Xpath 时:

Assert.AreEqual("text to search",
            driver.FindElement(By.XPath("//div[@id='cartList2']/div[3]/div/div/span")).Text);

但是,所有项目都有相似的路径,每个项目都可以是 div[1]-2-3-4-5....(取决于添加的顺序)

我的页面示例:

<div id="cartList2" class="k-listview k-widget">
    <div data-uid="c45003ff-536a-4293-b494-c6dde56c2d02" class="card-view k-widget ng-scope">
        <div class="row col-sm-12">
                <span bs-tooltip="" data-trigger="hover" data-container="body" data-placement="top" data-title="TEXT" class="col-xs-6 col-sm-6 description ng-scope ng-binding">TEXT</span>
            </div>
    </div>

    <div data-uid="91177f92-d790-47eb-8121-22eebe9e2610" class="card-view k-widget ng-scope">
        <div class="row col-sm-12">
                <span bs-tooltip="" data-trigger="hover" data-container="body" data-placement="top" data-title="TEXT" class="col-xs-6 col-sm-6 description ng-scope ng-binding">TEXT</span>
            </div>
    </div>

【问题讨论】:

  • 为什么不能使用 findElements?
  • 你想要的到底是什么
  • items which are added to the cart 不能与 TEXT 和 TEXT 具有相同的 Text。使用相关的 HTML 更新问题。

标签: c# selenium xpath selenium-webdriver css-selectors


【解决方案1】:

使用可以使用动态 xpath 例如在您的情况下://div[@id='cartList2']/div[3]/div/div/span,您可以根据需要编辑 div 索引

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多