【问题标题】:How do I extract a specific attribute from a list of elements that are all the same如何从完全相同的元素列表中提取特定属性
【发布时间】:2015-10-11 19:51:38
【问题描述】:

我们公司有一份显示条形图的报告。除了 2 个分别为蓝色和绿色的条形外,所有条形的颜色均为灰色,如下所示:

下面是元素的样子:

现在蓝色和绿色图形可以出现在 x 轴上的任何位置。 我正在用 C# 编写我的 selenium 测试用例,我想检查页面上是否存在突出显示的元素。

这是我定义元素选择器变量的方式

private readonly By barGraphAverage = By.CssSelector("rect[fill='#0373bc']");

我写了一个方法来检查那个元素是否存在

public string getBarGraph()
{
    return base.Browser.FindElementOrNull(barGraphAverage).Text;
}

这就是我在测试类中的调用方式

Assert.IsTrue(getBarGraph());

【问题讨论】:

  • 只需搜索您在第二张图片中突出显示的项目。
  • 您是否尝试过使用 CSS 选择器?我想他们可以访问元素上的填充属性...
  • 您可能需要说明实际问题是什么。您有代码,但没有说明您遇到了什么错误或结果是什么。

标签: c# selenium attributes css-selectors


【解决方案1】:

看起来您已经正确设置了大多数东西,除了您使用的是Assert.IsTrue(),但getBarGraph() 在需要返回boolean 时返回string。如果您将其更改为如下所示,它应该可以工作。

public boolean getBarGraph()
{
    return (driver.FindElements(barGraphAverage).Count > 0);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 2020-03-08
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多