Selenium - 查找网页的所有元素

Posted

技术标签:

【中文标题】Selenium - 查找网页的所有元素【英文标题】:Selenium - Find all elements of a web page 【发布时间】:2013-11-10 01:43:09 【问题描述】:

我正在计划一个 Java 工具,它有一个包含网页所有元素的下拉菜单。有什么办法可以将它们读入数据结构?

【问题讨论】:

嗨..你能开发上述工具吗?甚至计划开发相同的工具.. 需要您的意见.. 这仍然是一个 WIP,但我们正在取得进展。 你能解释一下开发过程的总结吗?? 这是一个用于开发脚本的摇摆 UI,它调用 javascript 来执行这些脚本。 【参考方案1】:

是的,有办法。

这是一些伪代码:

List<WebElement> el = driver.findElements(By.cssSelector("*"));

for ( WebElement e : el ) 
  add(e.tagName());

【讨论】:

谢谢。我确定在这种情况下我看不到 cssSelectors。例如,我尝试了 google.com,我得到了这些 - 图片 地图 播放 YouTube 新闻 Gmail 更多 登录 知道如何捕获自定义元素吗?已尝试使用 execute-script document.all 但这似乎仍然只返回标准元素 这是否也会获取自定义元素(非默认但由用户创建的元素/标签,例如,)? 是的,它会的。任何 Dom 元素。 By.cssSelector("我的标签")【参考方案2】:

上面的非伪 C# 版本:(虽然我只是在控制台中显示结果

IReadOnlyCollection<IWebElement> el = driver.FindElements(By.CssSelector("*"));
foreach (IWebElement elm in el)

    Console.WriteLine(elm.TagName + elm.Text);

【讨论】:

以上是关于Selenium - 查找网页的所有元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium xpath 查找包含“下载”一词的所有元素?

当元素不是按钮且在 Selenium 中不可定位时,如何查找在网页中单击了哪个元素? (HTML,硒)[关闭]

Selenium 解析 - 如何按一个类查找元素并返回另一个类

使用Selenium对网页元素进行定位的诸种方法

selenium-三种等待方式总结

Python实现网页自动化-浏览器查找元素