【发布时间】:2015-04-20 15:50:17
【问题描述】:
我目前正在使用 jbehave 和 spring 运行 selenium 测试。我的模式是故事文件>步骤文件>页面文件。
但是我认为我返回新页面文件的方式不是很干净,我相信这些页面可以通过 spring 注入但我需要帮助实现这一点。
我的豆子:
<bean id="driverProvider" class="org.jbehave.web.selenium.PropertyWebDriverProvider">
<bean>
<bean id="pageFactory"class="com.automation.pages.Pages
<constructor-arg ref="driverProvider" />
</bean>
在我的页面类中:
public class Pages {
private final WebDriverProvider webDriverProvider;
public Pages(WebDriverProvider webDriverProvider) {
this.webDriverProvider = webDriverProvider;
}
public HomePage newHomePage() {
return new HomePage(webDriverProvider);
}
public ContactPage newContactPage() {
return new ContactPage(webDriverProvider);
}
}
还有我的 BasePage 类:
public class BasePage {
protected HomePage homePage;
protected ContactPage contactPage;
public BasePage(PageFactory pageFactory) {
homePage = pageFactory.newHomePage();
contactPage = pageFactory.newContactPage();
}
然后从我的 Steps 文件中我只是扩展 BasePage 以便我可以访问受保护的页面。
理想情况下,我希望消除对 pagefactory 和/或 basepage 的需求,让 Spring 努力工作。
【问题讨论】:
标签: java spring selenium dependency-injection jbehave