使用 C# (Selenium) 从数组中获取随机元素的文本

Get text of random element from an array using C# (Selenium)

这是我的 Selenium 页面对象的一个​​方法(该页面在此处称为 "LandingPage_Page")- 此方法旨在获取 1 个元素的文本,但诀窍在于,选择了该元素从包含 12 个相似元素的页面中随机抽取。我希望它在每次测试运行时从这 12 个元素中获取不同的元素。

    public LandingPage_Page ArticleThumbnailTitle()
    {
        Random r = new Random();
        int rInt = r.Next(0, 11);

        var articleThumbTitle = Driver.FindElements(By.CssSelector(".row .article-title"));
        articleThumbTitle = articleThumbTitle[rInt].Text;            

        return this; 

最后一个 = 之后的所有内容都以红色突出显示。错误说:"Cannot implicitly convert type 'string' to 'System.Collections.ObjectModel.ReadOnlyCollection"

articleThumbTitle 是数组吗?我希望它是......如果是这样,我是否正确地将随机数调用到数组中?

在此先感谢您的指导, Y.

您应该像这样访问文本 属性 :

 string articleThumbTitleText = articleThumbTitle[rInt].Text;   

Text is property 为 IWebElement 定义。因此,您不能将其用作方法。

这个颜不对, Driver.findelements 将 return 一个列表 所以 articleThumbTitle 是类型列表的对象,您不能为其分配字符串文本值。像这样更改它:

var articleThumbTitle = Driver.FindElements(By.CssSelector(".row .article-title"));
var randomText = articleThumbTitle[rInt].Text;

我还建议您检查 articleThumbTitle.Count() < 11.