对不起,我的英语不好。
我使用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来帮助我。
我不知道哪里出了问题。 兄弟姐妹们,请帮助我。 非常感谢。
答案 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文档中的根节点开始查找元素,并实际通过整个文档。