我是Java的学习者和绝对的初学者。我正在学习创建自动化框架。通过观看在线教程,我已经开始构建框架。但是本教程是用C#编写的,而我试图用Java来构建它。因此,我被困住了,无法弄清楚我的代码出了什么问题。
这是我指的C#代码:
namespace DemoFramework
{
public static class Pages
{
private static T GetPage<T>() where T : new()
{
var page = new T();
PageFactory.InitElements(Browser.Driver, page);
return page;
}
public static AboutPage About
{
get { return GetPage<AboutPage>(); }
}
public static TopNavigationPage TopNavigation
{
get { return GetPage<TopNavigationPage>(); }
}
}
这是我正在编写的Java代码:
public class Pages {
static WebDriver driver;
private static Pages GetPage() {
Pages page = new Pages();
PageFactory.initElements(driver,page);
return page;
}
public static AboutPage About {
return return GetPage<AboutPage>();
}
public static TopNavigationPage TopNavigationPage {
return Pages.GetPage<TopNavigationPage>();
}
您能帮我弄清楚如何解决此问题。我无法获得退货的方法。 AboutPage。
public static AboutPage About {
return GetPage<AboutPage>();
}
答案 0 :(得分:1)
这是java中的基础页对象的示例:
b c + a d
这是特定页面对象的示例。 “帮助程序”引用是我拥有的一组帮助程序方法,它们在我的原始基础页对象中声明,但是由于实现了selenium wrapper方法并不是我想要在此处显示的内容,因此我在上文中删除了它们。只是知道,辅助方法有助于使用异常处理和日志记录来包装硒方法。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
public class BasePageObject {
WebDriver driver;
public BasePageObject(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(new AjaxElementLocatorFactory(driver, 15), this);
}
}
最后,是实现上述页面对象的代码片段:
以下代码使用JUnit和JBehave(BDD)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class MTSignOnPage extends BasePageObject {
public MTSignOnPage(WebDriver driver) {
super(driver);
}
@FindBy(xpath = "//img[contains(@src,'mast_signon')]")
WebElement pageHeader;
@FindBy(name = "userName")
WebElement userName;
@FindBy(name = "password")
WebElement password;
@FindBy(name = "login")
WebElement submit;
public boolean pageLoaded() {
return helper.isDisplayed(pageHeader);
}
public void setUserName(String name) {
helper.sendKeys(userName, name);
}
public void setPassword(String pword) {
helper.sendKeys(password, pword);
}
public void clickSubmit() {
helper.click(submit);
}
}