我在我的中创建了一个POM模型,其中我有两个页面--一个是登录页面,另一个是用户页面。现在,我为登录页面编写了一个测试用例,它运行良好,当我试图运行第二个测试用例时,我需要首先登录才能到达需要单击查看页面的用户页面。
下面是我编写的代码,用于将两个不同的页面对象模型方法运行到一个测试用例中,目前它只运行登录方法,而不是用户页面方法。上面我附上了框架截图,下面是我编写的userstestcase代码:
它不允许我粘贴框架截图,请帮助我
package testCases;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import pageFactory.Userspage;
import pageFactory.loginPage;
public class UsersTestCase {
WebDriver driver;
loginPage lpg;
Userspage upg;
@BeforeTest
public void setup(){
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("someurl");
}
@Test(priority=0)
public void test_login(){
lpg = new loginPage(driver);
String loginPageTitle = lpg.getLoginTitle();
Assert.assertTrue(loginPageTitle.contains("Login"));
lpg.loginToGuru99("username", "password");
driver.findElement(By.xpath("//a[@href='somelink']")).click();
}
public void test_users(){
upg = new Userspage(driver);
String usersPageTitle = upg.getLoginTitle();
Assert.assertTrue(usersPageTitle.contains("Users"));
}
}发布于 2015-06-12 05:54:38
上面的问题已经解决了--我做了什么来解决这个问题--我没有声明全局webdriver命令,然后使用这个命令,我没有将控件转移到用户页面,但是我已经重新创建了我的框架,现在一切都很好
发布于 2015-06-09 12:43:13
编辑:一个快速的解决方法是:
移动下面
lpg = new loginPage(driver);
upg = new Userspage(driver); 到beforeTest步骤,就在下面:
driver.get("http://citysurfstaging.sourcefuse.com/admin/login");在您的用户测试中,在进行其他任何操作之前,请调用下面的行:
lpg.loginToGuru99("saurabh.singh@sourcefuse.com", "sourcefuse123");
driver.findElement(By.xpath("//a[@href='http://citysurfstaging.sourcefuse.com/admin/users']")).click();这应该会使你处于执行用户测试所需的状态.
快速的建议,如果你真的想做POM,那么你不应该在你的测试中映射元素,所有这些都应该在你的页面类中完成.
原件:
如果您有多个页面,并且需要它们之间的交互来执行端到端的测试,那么为什么不为POM创建另一个抽象层并有一个Flow类呢?
示例:在flow类的构造函数中,您实例化了执行流(loginpage,userpage)所需的页面,这将使您可以看到每个页面类的页面对象,然后在这些页面之间创建尽可能多的流(方法)。下一步是实例化测试中的流(与实例化页面的方式相同),并调用与任意多个页面交互的flow方法.如果这还不够清楚,我可以给出更详细的例子。
https://stackoverflow.com/questions/30732065
复制相似问题