在项目结构中新增页面元素对象的package,在该package下新增三个页面对象类,分别为HomePage,RegisterPage,RegisterVerifyPage,代码如下
package org.davieyang.pages; import io.appium.java_client.android.AndroidDriver; import org.openqa.selenium.By; public class HomePage { AndroidDriver<?> driver; public HomePage(AndroidDriver<?> driver){ this.driver = driver; } private static By startRegister_btn = By.id("startUserRegistration"); public RegisterPage navigate_register_page(){ driver.findElement(startRegister_btn).click(); // 返回RegisterPage页面对象 return new RegisterPage(driver); } } package org.davieyang.pages; import org.openqa.selenium.By; import io.appium.java_client.android.AndroidDriver; public class RegisterPage { AndroidDriver<?> driver; public RegisterPage(AndroidDriver<?> driver){ this.driver = driver; } public static By username_txt = By.id("inputUsername"); public static By email_txt = By.id("inputEmail"); public static By password_txt = By.id("inputPassword"); public static By name_txt = By.id("inputName"); public static By language_sel = By.id("input_preferedProgrammingLanguage"); public static By prgLanguage = By.name("Scala"); public static By accept_check = By.id("input_adds"); public static By register_btn = By.id("btnRegisterUser"); public RegisterVerifyPage register_sucess(String username, String email, String password, String name){ driver.findElement(username_txt).sendKeys(username); driver.findElement(email_txt).sendKeys(email); driver.findElement(password_txt).sendKeys(password); driver.findElement(name_txt).clear(); driver.findElement(language_sel).sendKeys(name); driver.findElement(prgLanguage).click(); driver.findElement(accept_check).click(); driver.findElement(register_btn).click(); // 返回RegisterVerifyPage页面对象 return new RegisterVerifyPage(driver); } } package org.davieyang.pages; import org.openqa.selenium.By; import io.appium.java_client.android.AndroidDriver; public class RegisterVerifyPage { AndroidDriver<?> driver; public RegisterVerifyPage(AndroidDriver<?> driver){ this.driver = driver; } public static By label_name_data = By.id("label_name_data"); public String get_name_value(){ return driver.findElement(label_name_data).getText().toString(); } }修改之前的测试代码,如下所示
package org.davieyang.testscripts; import io.appium.java_client.android.AndroidDriver; import java.io.File; import java.net.URL; import java.util.concurrent.TimeUnit; import io.appium.java_client.android.AndroidElement; import org.davieyang.pages.HomePage; import org.davieyang.pages.RegisterPage; import org.davieyang.pages.RegisterVerifyPage; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import io.appium.java_client.remote.AndroidMobileCapabilityType; import io.appium.java_client.remote.AutomationName; import io.appium.java_client.remote.MobileCapabilityType; public class TestRegister { AndroidDriver<AndroidElement> driver; @BeforeMethod public void setUp() throws Exception{ DesiredCapabilities capabilities = new DesiredCapabilities(); // File appDir = new File("E:\\"); // File app = new File(appDir, "selendroid-test-app-0.17.0.apk"); capabilities.setCapability("deviceName", "Redmi 3"); capabilities.setCapability("udid", "claeae297d72"); capabilities.setCapability("platformVersion", "5.1.1"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("app", "app.getAbsolutePath()"); // capabilities.setCapability("automationName", AutomationName.APPIUM); capabilities.setCapability("appPackage", "io.selendroid.testapp"); capabilities.setCapability("appActivity", ".HomeScreenActivity"); capabilities.setCapability("unicodeKeyboard", "True"); capabilities.setCapability("noSign", "True"); driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void test_Register_success(){ HomePage homePage = new HomePage(driver); RegisterPage registerPage = homePage.navigate_register_page(); RegisterVerifyPage registerVerifyPage = registerPage.register_sucess("davieyang", "davieyang@qq.com","111111", "Daveiyang.D.Y"); Assert.assertEquals(registerVerifyPage.get_name_value(), "Daveiyang.D.Y"); } @AfterMethod public void tearDown(){ driver.quit(); } }