LoadableComponent类的使用
2021/8/18 23:12:06
本文主要是介绍LoadableComponent类的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通过继承LoadableComponent类,测试程序可以判断浏览器是否加载了正确的页面,只需要重写isLoaded和load二个方法,此方法有助于页面对象的页面访问操作更加稳定
1.LoginPage类
package com.gloryroad.pageobjects; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.ui.LoadableComponent; import org.testng.Assert; import java.util.concurrent.TimeUnit; //LoadableComponent public class LoginPage extends LoadableComponent<LoginPage> { private WebDriver driver; private String login_url = "http://ip地址/路径"; @FindBy(xpath = "//input[@id='login-email-address']") public WebElement email; @FindBy(xpath = "//input[@id='login-password']") public WebElement password; @FindBy(xpath = "//input[@id='Iajax-login-submit']") public WebElement submitbutton; @FindBy(className ="dialog-cancel") public WebElement quxiao; //构造函数,生成浏览器对象,初始化PageFactory对象 public LoginPage(){ driver = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.manage().window().maximize(); PageFactory.initElements(driver,this); } //增加了需要覆盖的方法load @Override protected void load() { this.driver.get(login_url); } //增加了需要覆盖的方法isLoaded @Override protected void isLoaded() throws Error { //断言访问后的界面Title是否包含"信贷"关键字 //判断浏览器是否加载了正确的网址 Assert.assertTrue(driver.getTitle().contains("信贷")); } //关闭浏览器的方法 public void quit(){ driver.quit(); } //登录操作的方法 public void login() throws InterruptedException { email.sendKeys("蔡徐坤坤"); password.sendKeys("qw123456"); submitbutton.click(); quxiao.click(); Thread.sleep(3000); } public WebDriver getDriver(){ return driver; } }
2.Testlogin类
package com.gloryroad.tests; import com.gloryroad.pageobjects.LoginPage; import org.openqa.selenium.WebDriver; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class Testfanwe { private LoginPage loginPage = new LoginPage(); private WebDriver driver; @BeforeMethod public void getConf(){ driver = loginPage.getDriver(); } @Test public void test_f_login() throws InterruptedException { //继承LoadableComponent类后,只要实现了覆盖的load方法 //即使在没有定义get方法的情况下,也可以进行get方法的调用 //get方法会默认调用页面对象类中的load方法 loginPage.get(); loginPage.login(); //判断登录后的页面是否"蔡徐坤坤"关键字,验证是否成功登录 Assert.assertTrue(driver.getPageSource().contains("蔡徐坤坤")); } @AfterMethod public void quit(){ loginPage.quit(); } }
这篇关于LoadableComponent类的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享