0
我目前有使用jbehave和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();
}
然後從我的步驟,則文件我只是延長BasePage的,所以我有權訪問受保護的頁面。
理想情況下,我想刪除對pagefactory和/或basepage的需求,並讓Spring努力工作。
我設法在無論我需要它的字段聲明上使用@Autowired註釋。這意味着現在不需要BasePage和PageFactory。 但是我的每個步驟和頁面文件都有很多bean,並且我在春天的某個地方閱讀過關於自定義註釋的地方。 我不知道我是否可以利用這個,所以我可以只註釋每個班級,並削減我擁有的豆子? – PSG