Selenium – 如何捕获页面上的所有网页元素和关联的定位器?

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

使用findElementsByXPath并指定’所有元素’为我工作。 例如

findElementsByXPath("//*") 

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

您可能找不到与selenium一起出现的任何“function”来执行此操作。 你将不得不使用一些工具

Firebug,Webdeveloper

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

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

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

 List el = driver.findElements(By.xpath("//*")); int count=0; for ( WebElement e : el ) { System.out.println( e.getTagName()+" "+e.getText()); count++; } System.out.println(count ); 
Interesting Posts