我使用selenium和C#的属性findelements,但它一直给出相同的错误

时间:2017-06-13 11:48:22

标签: c# selenium

这是我试图用来获取相应元素的代码的一部分,但它一直给我以下错误:

  

System.Collections.ObjectModel.ReadOnlyCollection`1 [OpenQA.Selenium.IWebElement]或   其他相同的

这也显示在她的行中的datagridview中。

package Student;

public class Example
{
    int i = 10;//instance variable which is created under class

    void age()// age is method here
    {   
        int j=11;// local variable which is created under method

}

    public static void main(String[] args) {


        Example ex = new Example();//Creating the object 
        System.out.println("Display the valule" ex.age());


        ex.age();

    }
}

2 个答案:

答案 0 :(得分:0)

首先是:据我所知,您所谈论的元素未包含在表格中。它是一个列表:<ul class="list-unstyled list-inline">...(考虑你留下的网站链接评论)

如果您想查找这些元素,可以使用以下代码:

var elements = driver.FindElements(By.CssSelector("ul.list-inline > li > a"));

// Here you can iterate though links and do whatever you want with them
foreach (var element in elements)
{
    Console.WriteLine(element.Text);
}

// Here is the collection of links texts
var linkNames = elements.Select(e => e.Text).ToList();

考虑到您得到的错误,我可能会假设您使用DataGridView来存储收集的数据,这非常不正确。 DataGridView用于查看MVC应用程序中的数据。没有用于存储表数据的标准Selenium类。有多种方法,但我不能建议你,因为我不知道你想要达到的目的。

答案 1 :(得分:0)

以下是我回答自己问题的方法:

IList<string> all = new List<string>();
        foreach (var element in Gdriver.FindElements(By.ClassName("search-title")))
        {
            all.Add(element.Text);
            table.Rows.Add(element.Text);
        }