Skip to content
On this page

插件

上传插件

系统管理 / 插件管理,以 yqhp-appium 插件为例

  1. 下载 yqhp-appium(见插件列表
  2. 新建插件 -> 名称: yqhp-appium -> 保存
  3. 上传下载好的插件文件

启用插件

系统管理 / 项目管理 启用插件

插件列表

渠道插件说明下载地址说明
yqhpyqhp-appium包装 AppiumDriver/RemoteWebDriver,提供更简易的 apiappium-plugin-0.0.8.jar查看
yqhpyqhp-easyimg图片识别 apieasyimg-plugin-0.0.5.jar
common-opencv-0.0.2.jar
查看

yqhp-appium

初始化-移动端

  1. 方式 1

    java
    import com.yqhp.plugin.appium.*;
    
    var d = new AppiumDriverWrapper(device.appiumDriver());
  2. 方式 2(推荐)

    扩展 AppiumDriverWrapper,根据团队需要,提供更多 API

    java
    import com.yqhp.plugin.appium.*;
    
    class CustomAppiumDriver extends AppiumDriverWrapper {
    
        CustomAppiumDriver() {
            super(device.appiumDriver());
        }
    
        void pressAndroidKey(AndroidKey key) {
            androidDriver().pressKey(new KeyEvent(key));
        }
    
        void pressHome() {
            if (isAndroid()) {
                pressAndroidKey(AndroidKey.HOME);
            } else {
                driver.executeScript("mobile: pressButton", Map.of("name", "home"));
            }
        }
    
        void pressBack() {
            pressAndroidKey(AndroidKey.BACK);
        }
    
        /**
        * 启动app
        *
        * @param appId android: package name | ios: bundle id
        */
        void startApp(String appId) {
            ((InteractsWithApps) driver).activateApp(appId);
        }
    
        /**
        * 停止app
        *
        * @param appId android: package name | ios: bundle id
        */
        boolean stopApp(String appId) {
            return ((InteractsWithApps) driver).terminateApp(appId);
        }
    
        /**
        * 安装app
        *
        * @param appUri app url or filePath
        */
        void installApp(String appUri, String... extraArgs) {
            device.installApp(appUri, extraArgs);
        }
    
        /**
        * app是否已安装
        *
        * @param appId android: package name | ios: bundle id
        */
        boolean isAppInstalled(String appId) {
            return ((InteractsWithApps) driver).isAppInstalled(appId);
        }
    
        /**
        * 卸载app
        *
        * @param appId android: package name | ios: bundle id
        */
        boolean uninstallApp(String appId) {
            return ((InteractsWithApps) driver).removeApp(appId);
        }
    
        /**
        * 清除apk数据, 相当于重新安装了app
        *
        * @param pkg package name
        */
        void clearApkData(String pkg) {
            device.androidShell("pm clear " + pkg);
        }
    
    }
    
    var d = new CustomAppiumDriver();
    // android
    var driver = d.androidDriver();
    // ios
    // var driver = d.iOSDriver();

初始化-web 端

  1. 方式 1

    java
    import com.yqhp.plugin.appium.*;
    
    ChromeDriver driver;
    RemoteWebDriverWrapper d;
    
    void init() {
        driver = browser.refreshChromeDriver();
        d = new RemoteWebDriverWrapper(driver);
    }
  2. 方式 2(推荐)

    扩展 RemoteWebDriverWrapper,根据团队需要,提供更多 API

    java
    import com.yqhp.plugin.appium.*;
    
    class CustomWebDriver extends RemoteWebDriverWrapper {
        CustomWebDriver(RemoteWebDriver driver) {
            super(driver);
        }
    }
    
    ChromeDriver driver;
    RemoteWebDriverWrapper d;
    void init() {
        driver = browser.refreshChromeDriver();
        d = new CustomWebDriver(driver);
    }

API

AppiumDriverWrapper

RemoteWebDriverWrapper

yqhp-easyimg

初始化

java
import com.yqhp.plugin.easyimg.*;

EasyImg img = new EasyImg(device.appiumDriver());
img.setImgDir("download"); // 远程图片存放路径

API

EasyImg