如何轻松获取vaadin testbench查询?

时间:2015-04-01 11:47:39

标签: java vaadin

我已经看到vaadin测试平台增加了硒中可用的By类的扩展,允许你做By.vaadin(),理论上它比硒对等物更强大。

我遇到的唯一问题是......我(或更具体地说是测试人员)如何构建By.vaadin()可读的查询?对于selenium,你可以使用selenium IDE,你可以指向一个元素,你如何对vaadin做同样的事情?

我已经在调试模式下启动了应用程序,但控制台似乎生成了java代码:

ButtonElement button1 = $(TabSheetElement.class).id("MainTabSheet")
    .$(HorizontalLayoutElement.class)
    .$$(HorizontalLayoutElement.class).$$(ButtonElement.class).first();

根据文档(http://vaadin.com/download/book-of-vaadin/current-br/html/testbench.selectors.html),您需要一个以下形式的选择器:

 "bookexamplestobetested::/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]"

那么你如何构建这样的查询呢?最好采用点击式的方式?

1 个答案:

答案 0 :(得分:0)

正如here

所解释的那样
  

Vaadin选择器以UI标识符开头。它是的URL路径   UI,但没有任何斜杠或其他特殊字符。对于   例如,/ book-examples / tobetested将是bookexamplestobetested。   标识符后面有两个冒号" ::",后跟一个   要选择的组件的斜杠分隔组件路径。该   组件路径中的元素是Vaadin的客户端类   用户界面组件。例如,服务器端   VerticalLayout组件具有VVerticalLayout客户端对应组件。   除了叶子之外的所有路径元素通常都是组件容器   布局。确切包含的组件由其索引标识   括号。   bookexamplestobetested::/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]

但是,我会重新考虑在Web测试中使用这样详细的选择器,因为它有许多缺点。您的测试严重依赖于UI的名称,布局结构和组件层次结构。更灵活的方法是以不了解布局层次结构中组件位置的方式识别项目,并且仅引用组件html元素id,唯一css类或CustomLayout中的location属性。这种方式您的Web测试更简单,更改耐用。当您更改布局,重新排序组件或添加更多组件时,您的测试不会中断。因此,您可以使用常规的WebDriver选择器,例如By.ByIdBy.ByClassName等。