C#Selenium GetElements获取错误数据

时间:2018-08-19 09:11:15

标签: c# selenium

对不起,我的英语不好。

我使用Selenium从网上获取数据, 这是我的代码

var workGroups = e.WebDriver.FindElements(By.XPath("//div[@class='workgroup']"));

                    Console.WriteLine($"Item List: {workGroups.Count} Items");

        foreach (var workgroup in workGroups)
        {
            string workName = workgroup.FindElement(By.XPath("//div[@class='worktitle']/label")).Text;

            var detail = workgroup.FindElements(By.XPath("//div[@class='col-4 high']"));

            Console.WriteLine($"Item Name: {workName}, Number of Pictures: {detail.Count}");
        }

这是结果: result

似乎正在捕获第一个数据和所有图片, 我使用chromedriver来帮助我。

我不知道哪里出了问题。 兄弟姐妹们,请帮助我。 非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用:

string workName = workgroup.FindElement(By.XPath("./div[@class='worktitle']/label")).Text;
var detail = workgroup.FindElements(By.XPath("./div[@class='col-4 high']"));

我没有进行测试,但是假设通过使用workgroup元素,您只希望获得workgroup元素区域“内部”的元素。但是,为此,您需要使用当前的“文件夹”表示法(./)而不是根元素表示法(//),后者从HTML文档中的根节点开始查找元素,并实际通过整个文档。