Qmetry Error: Underlying driver is an QAFExtendedWebDriver. This step requires an AndroidDriver

Qmetry Error: Underlying driver is an QAFExtendedWebDriver. This step requires an AndroidDriver

使用 Qmetry 框架通过 appium 在 android 移动设备上执行触摸操作。面临驱动程序初始化不正确的问题。

问题

我正在尝试将 android 驱动程序设置为执行触摸操作的驱动程序。但是在执行过程中 Qmetry 初始化了不正确的驱动程序(错误提示 'Underlying driver is an QAFExtendedWebDriver')。看起来它正在初始化 qmetry 框架提供的默认驱动程序。

在 application.properties 文件中设置以下功能以及其他所需功能:

driver.name=appiumRemoteDriver
appium.capabilities.driverClass=io.appium.java_client.android.AndroidDriver;

触摸动作函数:

new TouchAction(driver)
            .press(pointOptionStart)
                    // a bit more reliable when we add small wait
                    .waitAction(WaitOptions.waitOptions(Duration.ofMillis(PRESS_TIME)))
                    .moveTo(pointOptionEnd)
                    .release().perform();

控制台错误:

ERROR: Underlying driver is an QAFExtendedWebDriver. This step requires an AndroidDriver. ????? swipeElementAndroid(): TouchAction FAILED Underlying driver is an QAFExtendedWebDriver. This step requires an AndroidDriver.

如果有人能提供解决这个问题的方法,那将是很大的帮助。

驱动程序class仅在您不使用远程驱动程序时使用。从您的驱动程序名称中删除 remote; 也是列表分隔符,因此从驱动程序 class 功能值中删除 ;

driver.name=appiumDriver
appium.capabilities.driverClass=io.appium.java_client.android.AndroidDriver

经过上述更改,下面的代码应该可以工作:

AppiumDriver driver = (AppiumDriver) new WebDriverTestBase().getDriver().getUnderLayingDriver();
new TouchAction(driver)
            .press(pointOptionStart)
                    // a bit more reliable when we add small wait
                    .waitAction(WaitOptions.waitOptions(Duration.ofMillis(PRESS_TIME)))
                    .moveTo(pointOptionEnd)
                    .release().perform();

您可以 refer appium 特定实用程序 methods/steps。