当前位置: 首页 > 知识库问答 >
问题:

通过部分ID/CSS查找所有元素,并将其放入列表中,使用C#中的Selenium[重复]

孔山
2023-03-14

我正在尝试从一个搜索结果页面定位所有元素,并将它们放在一个列表中。第一个问题是找到所有的元素。我没有问题找到一个特定的元素

driver.FindElement(By.CssSelector("#event_395634"));
driver.FindElement(By.Id("event_395634"));
List<IWebElement> eventList = new List<IWebElement>();
events = driver.FindElements(By.?("Magic code");

共有1个答案

欧阳君浩
2023-03-14

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

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

应该管用。

 类似资料:
  • 问题内容: 我正在尝试查找具有动态生成ID的元素。字符串的最后一部分是常量(“ ReportViewer_fixedTable”),因此我可以使用它来定位元素。我试图在XPath中使用正则表达式: 并通过CssSelector定位: 都不行。任何建议,将不胜感激。 问题答案: 那是因为需要修改css选择器,而您几乎就在那里… 从https://saucelabs.com/blog/selenium

  • 问题内容: 工作代码1: 工作代码2: 问题答案: 初始选择器的问题是缺少选择器的前面。在告诉XPath来搜索整个HTML树。 这应该可以解决问题: 如果要查找元素的子代,请改用,例如 如果要查找包含 文本 而不是href属性的链接,则可以使用

  • 我还尝试使用CSSSelector: 但WebDriver不断抛出一个异常,说明它无法找到该元素。有什么建议可以是什么问题吗?

  • 问题内容: 以下定位技术之间有什么区别? 而且,从 性能角度来看 ,哪种方法是通过id定位元素的最快方法? 问题答案: 您的问题很难回答,肯定会给出一个结论性的答案。实际上,我很想将此问题标记为“太宽泛”,其他答案和评论也支持该问题。 以您的为例。纵观Selenium来源, 大多数 驱动程序只是获取您提供的ID,然后将其传递给有线协议: 如您所知,每个浏览器供应商都在单独的二进制文件中实现自己的有

  • 问题内容: 我有3个div。 像这样: 他们将充满文字。我不确定多少。问题是,所有高度都必须相等。 我如何使用jQuery(或CSS)查找DIV最高的并将其他两个设置为相同的高度,从而创建3个相等高度的DIV。 这可能吗? 问题答案: 您不能轻松地通过高度选择或在CSS中进行比较,但是jQuery和一些迭代应该可以轻松解决此问题。我们将遍历每个元素并跟踪最高的元素,然后再次遍历并将每个元素的高度设