3

我可以使用哪些 Java/Selenium 命令来捕获/获取/输出单个网页的所有元素和相关元素定位器?Selenium IDE 允许您一次检查一个元素。如果您有数千个元素要自动化,那将是一个问题。是否有工具或 Java/selenium 命令可用于一次获取网页上的所有对象/元素,然后可以自定义输出以满足我的需求?如果您对 SilkTest 有任何经验,我想要类似于在 SilkTest 中生成窗口声明的东西。SilkTest 的记录窗口声明工具捕获页面上所有对象/元素的标签/属性/定位器信息,并允许您将代码粘贴到库或包含文件中。因此,只需单击一两次,我就可以在 SilkTest 中捕获和定义数十个对象。是否有对 Selenium 执行类似操作的工具或命令?我正在使用 Java,所以我想要 Java 中的任何示例。谢谢。

4

4 回答 4

4

使用 findElementsByXPath 并指定“所有元素”对我有用。例如

findElementsByXPath("//*")

http://www.w3schools.com/xml/xpath_syntax.asp

于 2011-08-18T18:16:23.560 回答
0

您可能找不到 selenium 附带的任何“功能”来执行此操作。您将不得不使用一些工具,例如

萤火虫,网络开发者

(两者都是 firefox 扩展)找到您需要的定位器的 xpath/css 路径。另外,为什么您需要获取“所有”元素?我觉得在页面中使用“所有”元素的机会可能非常少。最简单的方法(我认为您已经在做)是使用 IDE 创建测试用例的原型,然后使用 Firebug 或类似工具来优化 xpath。

于 2011-07-19T21:24:54.663 回答
0

有一个 chrome 扩展 - Selenium Page Object Generator - 它生成一个 .java 类,其中包含页面对象模型的所有页面定位器。它太酷了。一探究竟!!

https://chrome.google.com/webstore/detail/selenium-page-object-gene/epgmnmcjdhapiojbohkkemlfkegmbebb

于 2018-05-10T12:55:26.143 回答
-1
List<WebElement> el = driver.findElements(By.xpath("//*"));
            int count=0;
            for ( WebElement e : el ) {
             System.out.println( e.getTagName()+"    "+e.getText());

             count++;

            }
          System.out.println(count );
于 2017-05-26T07:13:07.087 回答