我有一个 Android 应用程序,它使用 Xamarin 转换为 iOS 应用程序。我想使用一个 appium 脚本来自动化这两个

I have an Android app which is converted to iOS app using Xamarin. I want to use a single appium script to automate both

可能吗?这两个应用程序都有不同的元素细节。开发团队可以解决这个问题吗?

可以通过使用页面对象模型和 PageFactory 实用程序 class。在将屏幕描述为页面对象时,您可以为每个平台指定不同的定位器。例如:

public class LoginView extends BaseView {

    @AndroidFindBy(id = "email")
    @iOSXCUITFindBy(accessibility = "email")
    private MobileElement emailInput;

    @AndroidFindBy(id = "password")
    @iOSXCUITFindBy(accessibility = "password")
    private MobileElement passwordInput;

    @AndroidFindBy(id = "submit")
    @iOSXCUITFindBy(accessibility = "submit")
    private MobileElement submitButton;

    public LoginView(AppiumDriver driver) {
        super(driver);
    }

    public void login(String username, String password) {
        emailInput.click();
        emailInput.type(username);
        passwordInput.click();
        passwordInput.type(password);
        submitButton.click();
    }
}

在 BaseView 中,您需要传递驱动程序实例并初始化元素,例如这样:

abstract class BaseView {
    protected AppiumDriver driver;

    public BaseView(AppiumDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }
}

现在,您只需要为您的元素在不同平台上抓取定位器,其余的都将由 PageFactory 处理。

希望对您有所帮助