初始化页面对象 - Arquillian - Selenium
Initialize Page Objects - Arquillian - Selenium
我是 Selenium 和 Arquillian 框架的新手。我正在尝试实现页面对象模型。 Webdriver 浏览器功能保存在 arquillian xml 文件中。
我正在使用 TestNG 并创建了以下 类:
public class Test{
@Drone
Webdriver driver;
@Page
Login login;
@Page
Home home;
public void createOrderTest(){
login.navigateURL();
login.setcredentials();
home.createOrder();
}
}
public class Login{
// Webelements needed in methods below are declared here
public void navigateURL(){
driver.get("//url/login.aspx");
}
public void setCredentials(){
// code to enter username, password and click login
Graphene.waitAjax().until().element(signIn).is().not().visible();
}
}
public class Home{
// Webelements needed in methods below are declared here
public void createOrder(){
// code to create order
}
}
问题陈述:
我不确定如何在代码中的 Login
和 Home
页面之间导航。一旦用户使用 Login
页面方法登录,Webdriver 如何使用 Home
页面方法继续测试?
错误:
使用 navigateURL
和 setcredentials
方法测试运行良好。但是,测试无法访问 createOrder
方法,如下所示:
WARNING: Argument 1 for UpdateTestResultBeforeAfter.update is null. It won't be invoked.
FAILED CONFIGURATION: @BeforeMethod arquillianBeforeTest(public void Test.createOrder() throws javax.mail.MessagingException,java.io.IOException,java.security.GeneralSecurityException)
org.jboss.arquillian.graphene.enricher.exception.PageObjectInitializationException: Can not instantiate Page Object class Home
请指导我。谢谢。
首页是静态页面吗?我假设您不应该将登录页面重定向到主页。这应该由应用程序本身完成。也就是说,最终用户将使用 url 访问登录页面。毕竟所有导航都应该由应用程序本身完成。
@RunAsClient
public class Test extends Arquillian{
@Drone
Webdriver driver;
@Page
Login login;
@Page
Home home;
public void createOrderTest(){
login.navigateURL();
login.setcredentials();
//you do not need this
//home = Graphene.goTo(Home.class)
//use graphene fluent wait API to wait for the page load
home.createOrder();
}
}
我是 Selenium 和 Arquillian 框架的新手。我正在尝试实现页面对象模型。 Webdriver 浏览器功能保存在 arquillian xml 文件中。
我正在使用 TestNG 并创建了以下 类:
public class Test{
@Drone
Webdriver driver;
@Page
Login login;
@Page
Home home;
public void createOrderTest(){
login.navigateURL();
login.setcredentials();
home.createOrder();
}
}
public class Login{
// Webelements needed in methods below are declared here
public void navigateURL(){
driver.get("//url/login.aspx");
}
public void setCredentials(){
// code to enter username, password and click login
Graphene.waitAjax().until().element(signIn).is().not().visible();
}
}
public class Home{
// Webelements needed in methods below are declared here
public void createOrder(){
// code to create order
}
}
问题陈述:
我不确定如何在代码中的 Login
和 Home
页面之间导航。一旦用户使用 Login
页面方法登录,Webdriver 如何使用 Home
页面方法继续测试?
错误:
使用 navigateURL
和 setcredentials
方法测试运行良好。但是,测试无法访问 createOrder
方法,如下所示:
WARNING: Argument 1 for UpdateTestResultBeforeAfter.update is null. It won't be invoked.
FAILED CONFIGURATION: @BeforeMethod arquillianBeforeTest(public void Test.createOrder() throws javax.mail.MessagingException,java.io.IOException,java.security.GeneralSecurityException)
org.jboss.arquillian.graphene.enricher.exception.PageObjectInitializationException: Can not instantiate Page Object class Home
请指导我。谢谢。
首页是静态页面吗?我假设您不应该将登录页面重定向到主页。这应该由应用程序本身完成。也就是说,最终用户将使用 url 访问登录页面。毕竟所有导航都应该由应用程序本身完成。
@RunAsClient
public class Test extends Arquillian{
@Drone
Webdriver driver;
@Page
Login login;
@Page
Home home;
public void createOrderTest(){
login.navigateURL();
login.setcredentials();
//you do not need this
//home = Graphene.goTo(Home.class)
//use graphene fluent wait API to wait for the page load
home.createOrder();
}
}