c# - Selenium C# 列表

标签 c# list selenium selenium-chromedriver

您好 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/

相关文章:

java - 无法启动 Appium session 。错误为 : Error: 'java -version' failed

c# - 如何获取网格新行的 RowHandle(当它生效时)(devexpress)

c# - 如何确保所有 C# Azure 函数触发器都具有有效的依赖项注入(inject)?

c - 单链表输出

javascript - Selenium 和 Angularjs 等待执行一些操作

angularjs - 当我有 Cucumber 和 Selenium 时,为什么还需要 Protractor?

c# - Asp.net - 更新相关数据 - 提交时获取null

c# - const 多维数组初始化

python - 我如何从字符串中获取特定单词的下两个单词?

java - 如何根据列表中的两个不同值获取 2 个计数并检查两个计数是否相等?