karma-event-driver-ext icon indicating copy to clipboard operation
karma-event-driver-ext copied to clipboard

compatible

Open gogoyqj opened this issue 7 years ago • 1 comments

let webdriverio = require('webdriverio');
let client = webdriverio.remote({
    logLevel: 'verbose',
    // Using appium:
    port: 4723,
    desiredCapabilities: { // android QQ
        platformName: "Android",
        deviceName: "emulator-5554",
        platformVersion: "5.1",
        app: "com.tencent.mtt.x86",
        appActivity: "com.tencent.mtt.x86.MainActivity"
    },
    // desiredCapabilities: { // android default
    //     platformName: "Android",
    //     deviceName: "emulator-5554",
    //     platformVersion: "5.1",
    //     app: "com.android.browser",
    //     appActivity: ".BrowserActivity"
    // },
    // desiredCapabilities: { // android chrome
    //     browserName: 'chrome',
    //     platformName: "Android",
    //     deviceName: "emulator-5554",
    //     platformVersion: "5.1"
    // },
    // Using selenium standalone:
    // port: 4444,
    // desiredCapabilities: { // android mobile
    //     browserName: 'chrome',
    //     platformName: "Android",
    //     platformVersion: "5.1",
    //     deviceName: "emulator-5554",
    //     chromeOptions: {
    //         androidPackage: 'com.android.chrome'
    //     }
    // },
    // desiredCapabilities: { // android default: does not work in some situation
    //     chromeOptions: {
    //         androidPackage: 'com.android.browser',
    //         androidActivity: '.BrowserActivity',
    //         windowTypes: ['webview']
    //     },
    //     platformVersion: '5.1',
    //     browserName: 'chrome',
    //     deviceName: "emulator-5554",
    //     platformName: 'Android'
    // }
});
let browser = client
    .init();

browser.url('http://ued.qunar.com/hy2/yo/demo/src/html/component/scroller/lazyimage.html')
    .pause(5000) // webview app or browser wait for h5 ready for a time
    .contexts()
    .then(ctx => ctx, err => { return {flag: "using selenium standalone"}; })
    .then(ctx => {
        /**
         * Using appium:
         *  chrome: NATIVE_APP, CHROMIUM
         *  com.android.browser: NATIVE_APP, WEBVIEW_com.android.browser
         * Using selenium standalone:
         *  com.android.browser, com.android.chrome: throw Error
         */
        let webview = ctx.status === 0 && ctx.value[1];
        let flag = ctx.flag;
        if (webview || flag) return (flag ? browser : browser.context(webview))
                            .touchDown(20, 300)
                            .touchMove(20, 200)
                            .touchMove(20, 100)
                            .touchUp(20, 50);
        /**
         * com.tencent.mtt.x86: NATIVE_APP
         */
        return browser
                .touchAction([{
                    action: 'press', x: 20, y: 400
                },
                {
                    action: 'moveTo', x: 20, y: -200
                },
                {
                    action: 'moveTo', x: 20, y: -100
                },
                    'release'
                ]);
    })
    .then(() => {
        setTimeout(() => {
            browser.end();
        }, 5000);
    }, err => {
        console.log("err", err);
        setTimeout(() => {
            browser.end();
        }, 5000);
    });

gogoyqj avatar Jun 28 '17 07:06 gogoyqj