【问题标题】:Finding all elements by partial Id/Css, and putting them in a list, with Selenium in C# [duplicate]通过部分 Id/Css 查找所有元素,并将它们放在一个列表中,在 C# 中使用 Selenium [重复]
【发布时间】:2017-10-19 16:14:59
【问题描述】:

我正在尝试从搜索结果页面中找到所有元素并将它们放入列表中。第一个问题是找到所有元素。我可以毫无问题地找到特定元素:

driver.FindElement(By.CssSelector("#event_395634"));

或者:

driver.FindElement(By.Id("event_395634"));

但是如何找到以“#event_”或“event_”开头的每个元素呢?

我如何将它们放入列表中?这是一个开始吗?:

List<IWebElement> eventList = new List<IWebElement>();
events = driver.FindElements(By.?("Magic code");

....然后呢?还是我走远了? 我打算在稍后阶段遍历列表。

【问题讨论】:

    标签: c# selenium visual-studio-2017 selenium-chromedriver


    【解决方案1】:

    有一个 CSS 选择器,它选择属性以给定字符串开头的所有元素。
    您可以将其与By.CssSelector 一起使用。

    var events = driver.FindElements(By.CssSelector("[id^=event_]"));
    

    它应该工作。

    【讨论】:

    • 是的,它做到了!谢谢!你也知道第二个问题的答案吗?关于名单?现在我已经这么远了:var events = driver.FindElements(By.CssSelector("[id^=event_]")); events.ToList&lt;IWebElement&gt;(); foreach (object o in events) { System.Diagnostics.Debug.WriteLine(events); }
    猜你喜欢
    • 1970-01-01
    • 2019-03-05
    • 2017-11-21
    • 1970-01-01
    • 2013-09-15
    • 2018-07-28
    • 2020-04-25
    相关资源
    最近更新 更多