您好 Stackoverflow 用户,
我有一个包含 99 个列表元素的网站。 元素之间的区别只是名称。
<li class="_6e4x5">
<div class="_npuc5">
<div class="_f5wpw">
<div class="_eryrc">
<div class="_2nunc">
<a class="_2g7d5 notranslate _o5iw8" title="Name1" href="/"Name1/">"Name1</a>
</div>
</div>
</div>
</div>
</li>
[...]
<li class="_6e4x5">
<div class="_npuc5">
<div class="_f5wpw">
<div class="_eryrc">
<div class="_2nunc">
<a class="_2g7d5 notranslate _o5iw8" title="Name99" href="/"Name99/">"Name99</a>
</div>
</div>
</div>
</div>
</li>
我想要的:
我想获取每个列表元素的“标题”并将其放入一个新列表中。
我尝试了什么:
List<string> following = new List<string>();
By name = By.XPath("//div[@class='_2nunc']");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
IList<IWebElement> displayedOptions = driver.FindElements(name);
foreach (IWebElement option in displayedOptions)
{
string temp = displayedOptions[i].ToString();
following.Add(temp);
i++;
}
如果我运行代码,我只会得到元素 ID,而不是“标题”(例如 name34)。我希望你有足够的信息来帮助我解决我的问题。在此先感谢您的帮助!
最佳答案
要获取
title 每个列表元素并将其放入新列表
,您可以使用以下代码块:
List<string> following = new List<string>();
IList<IWebElement> displayedOptions = driver.FindElements(By.XPath("//li[@class='_6e4x5']//a[@class='_2g7d5 notranslate _o5iw8']"));
foreach (IWebElement option in displayedOptions)
{
string temp = option.GetAttribute("title");
following.Add(temp);
}
关于c# - Selenium C# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012320/