我一直在使用硒1,但现在想迁移到selenium2 / webdriver.说实话,我发现有点难以从selenium2 / webdriver开始.实质上,我不知道如何在页面对象之间工作.这是我的例子:
public class LoginPage { private final WebDriver driver; public LoginPage(WebDriver driver) { this.driver = driver; } public void loginAs(String username,String password) { driver.get("http://url_to_my_webapp"); driver.findElement(By.id("username")).sendKeys(username); driver.findElement(By.id("pwd")).sendKeys(password); driver.findElement(By.className("button")).submit(); } public static void main(String[] args){ LoginPage login = new LoginPage(new FirefoxDriver()); login.loginAs("user","pass"); } }
现在,用户登录后,会发生重定向到不同的页面.据我所知,我现在应该创建一个代表当前页面的新页面对象…事实上我不知道如何?哪里可以找到一些超越“你好世界”级别的好榜样?
我该怎么继续这个例子?
提前致谢!
解决方法
这些网站都提供了一些例子:
http://luizfar.wordpress.com/2010/09/29/page-objects/
http://www.wakaleo.com/blog/selenium-2-web-driver-the-land-where-page-objects-are-king
此页面提供了使用PageFactory来支持页面对象的一些细节:
http://code.google.com/p/selenium/wiki/PageFactory
您可以通过为每个页面创建一个类来扩展您的示例来处理页面对象,例如:
public class MainPage { private final WebDriver driver; public MainPage(WebDriver driver) { this.driver = driver; } public void doSomething() { driver.findElement(By.id("something")).Click; } }
并更改loginAs以返回一个代表登录后浏览器浏览的页面的类:
public MainPage loginAs(String username,String password) { driver.get("http://url_to_my_webapp"); driver.findElement(By.id("username")).sendKeys(username); driver.findElement(By.id("pwd")).sendKeys(password); driver.findElement(By.className("button")).submit(); // Add some error checking here for login failure return new MainPage(driver); }
原文地址:https://www.jb51.cc/java/123601.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。