我已经看到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]"
那么你如何构建这样的查询呢?最好采用点击式的方式?
答案 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.ById
,By.ByClassName
等。