gpt4 book ai didi

c# - 迭代 IReadOnlyCollection 中的元素时 FindElement 不迭代

转载 作者:太空狗 更新时间:2023-10-29 23:29:28 25 4
gpt4 key购买 nike

我正在迭代取自 HTML 的元素。

structureElement 似乎包含找到的元素,但是当我在其上运行 .FindElement() 时,它始终返回第一次迭代的值。这是为什么?

这是我的代码:

IReadOnlyCollection<IWebElement> structureElements =
driver.FindElements(By.XPath(".//div[contains(@id, 'PSBTree_x-auto-')]"));
//.Where(sE => sE.FindElement(By.XPath("//img[@title]")).GetAttribute("title") != "Customer Item")
IWebElement tmp;
foreach (IWebElement structureElement in structureElements)
{
//if (structureElement.FindElement(By.XPath("//span//img[@title]")).GetAttribute("title").Contains("Customer Item"))
// continue;
tmp = structureElement.FindElement(By.XPath("//span[@class='cat-icons-tree']/img"));
ReportProgress(progress, ref r, ct, allsteps, message + tmp.GetCssValue("background"));
Thread.Sleep(100);
ReportProgress(progress, ref r, ct, allsteps, message + structureElement.Text);
Thread.Sleep(300);
}

最佳答案

那是因为您在 Xpath 中使用了 //,这意味着“选择根的后代 ”,所以它返回第一个它在文档中找到

如果你想找到那个节点的后代,你可能想尝试:

.//span[@class='cat-icons-tree']/img

.// 表示“选择上下文节点的后代”

您可以检查轴的所有缩写 here

关于c# - 迭代 IReadOnlyCollection 中的元素时 FindElement 不迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com