当appium检测到特定页面时如何调用函数/Robotframework关键字

问题描述 投票:0回答:1

我目前正在使用 appium、Robotframework 和 Python 运行 Android 测试自动化。 场景:实施了一项新功能 - App Pin。该页面将在应用程序打开后 X 秒后显示。现在我需要使这个新功能适应我所有现有的测试用例。

我能想到的一种方法是,为应用程序 pin 创建一个自定义 Robotframework 关键字,并在必要时使用它。我不喜欢这种方法的一件事是,我将根据应用程序 pin 页面显示的时间对关键字进行硬编码。

我想知道是否有其他方法,如果appium本身检测到该页面,则调用关键字?

请告诉我。谢谢!

automated-tests appium robotframework keyword
1个回答
0
投票

定义页面对象:为应用程序的每个页面创建一个 Java 类。每个类都应包含与该页面上的元素交互的定位器和方法。

公共类登录页面{ 私有 AppiumDriver 驱动程序;

// Locators
private By usernameField = By.id("username");
private By passwordField = By.id("password");
private By loginButton = By.id("login_button");

public LoginPage(AppiumDriver<MobileElement> driver) {
    this.driver = driver;
}

public void enterUsername(String username) {
    driver.findElement(usernameField).sendKeys(username);
}

public void enterPassword(String password) {
    driver.findElement(passwordField).sendKeys(password);
}

public void clickLoginButton() {
    driver.findElement(loginButton).click();
}

}

创建测试方法:使用 TestNG 或 JUnit 编写测试方法。使用页面对象与每个页面上的元素进行交互。

公共类 TestClass 扩展 BaseTest {

@Test
public void testLoginPage() {
    LoginPage loginPage = new LoginPage(driver);
    loginPage.enterUsername("username");
    loginPage.enterPassword("password");
    loginPage.clickLoginButton();
}

}

使用页面转换:在测试方法中,您可以等待特定于目标页面的元素。找到这些元素后,您可以执行特定于该页面的操作。

公共类 BaseTest { 受保护的 AppiumDriver 驱动程序;

@BeforeClass
public void setUp() throws MalformedURLException {
    DesiredCapabilities caps = new DesiredCapabilities();
    // Set up desired capabilities
    
    // Initialize driver
    driver = new AppiumDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
}

@AfterClass
public void tearDown() {
    driver.quit();
}

}

运行测试:使用 TestNG 或 JUnit 执行您的测试用例,Appium 将根据您定义的操作与应用程序交互。

#自动化#Appium

© www.soinside.com 2019 - 2024. All rights reserved.