如果显示元素的文本,如何返回该文本

时间:2017-11-10 18:29:02

标签: c# selenium

我想找到一些有关机场替代价格的要素。现在有一些价格没有显示,所以我想要做的只是得到第一个显示的机场价格的文本。

所以我试图做一个foreach循环,看看其他机场的价格。一旦显示机场价格,就可以从循环中分解并简单地返回此价格的文本。

问题是我正在努力实施alternativeAirportPrice.Text;并返回它。我想问一下如何实现这个。

    public void GetAlternativeAirportPrice(By airportPriceLocator)
    {
        var alternativeAirportPrices = _driver.FindElements(airportPriceLocator);

        foreach (var alternativeAirportPrice in alternativeAirportPrices)
        {
            if (alternativeAirportPrice.Displayed)
                return alternativeAirportPrice.Text;
                break;

        }
        return alternativeAirportPrice.Text;
    }

1 个答案:

答案 0 :(得分:3)

你可能只想要:

public string GetAlternativeAirportPrice(By airportPriceLocator)
{
    var alternativeAirportPrices = _driver.FindElements(airportPriceLocator);

    foreach (var alternativeAirportPrice in alternativeAirportPrices)
    {
        if (alternativeAirportPrice.Displayed)
            return alternativeAirportPrice.Text;
    }

    return null;
}

,移除break,因为如果您没有找到显示的价格,这将导致您的foreach在第一个元素之后退出。

找到价格后return,您不需要break

另请注意,您的函数需要返回类型,我认为您的alternativeAirportPrice.Textstring