scala selenium dsl page object

shm*_*111 3 scala selenium-webdriver

我正在使用Selenium dsl并想使用Page对象.目前,我似乎必须在测试类中定义页面对象.我想要一个页面对象的原因是在测试之间共享共同的功能,所以这似乎有点无意义......有没有人一直在使用Selenium DSL的页面对象模型?在同一个类中定义页面对象背后的想法是什么?如果我在测试类之外定义页面对象,为什么会出现编译器错误.难道我做错了什么?

我得到的编译器错误是:

预期MySpec.this.type#Page,实际:MyPage

Ale*_*ula 5

您可以在测试类之外定义类,如下所示:

class TwitterPage {
  val url = "http://twitter.com"
}
Run Code Online (Sandbox Code Playgroud)

然后,通过混合 Page trait 在测试中使用它:

val page = new TwitterPage with Page
go to page
title should be ("Welcome to Twitter")
Run Code Online (Sandbox Code Playgroud)

这编译和工作对我来说很好.