Appium测试混血App

Hybrid App(混合模式移动应用)
是指介于web-app、native-app这两者之间的app
兼具Native App良好用户交互体验的优势

Web App跨平台开发的优势

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

import static java.lang.Thread.sleep;


public class HybridAppTest {

    private AppiumDriver driver;

    @BeforeMethod
    public void beforeMethod() throws MalformedURLException, InterruptedException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("platformVersion","7.1.1");
        capabilities.setCapability("deviceName","3216e430");
        capabilities.setCapability("browserName","Chrome");
        //Chrome
        capabilities.setCapability("appPackage","com.android.browser");
        //Chrome包名
        capabilities.setCapability("appActivity",".BrowserActivity");
        //Chrome启动页
        capabilities.setCapability("unicodeKeyboard",true);
        capabilities.setCapability("resetKeyboard",true);
        capabilities.setCapability("noReset",true);
        capabilities.setCapability("noSign",true);

        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        driver = new AndroidDriver(url, capabilities);
        sleep(2000);
    }

    @Test
    public void hybridApp() throws InterruptedException {
        driver.get("http://www.cnblogs.com/yjlch1016/");
        sleep(2000);
        driver.context("NATIVE_APP");
        //切换到原生
        sleep(1000);
        driver.findElementById("com.android.chrome:id/menu_button").click();
        //点击右上角的菜单
        sleep(2000);
        driver.findElementByAccessibilityId("历史记录").click();
        //点击历史纪录
        sleep(2000);
        driver.navigate().back();
        //手机返回键
        sleep(2000);
        driver.context("CHROMIUM");
        //切换到H5
        sleep(1000);
        driver.findElementByXPath(".//*[@id='homepage1_HomePageDays_ctl00_DayList_TitleUrl_0']").click();
        //点击第1篇博客
        sleep(2000);
        Assert.assertEquals(driver.findElementByXPath(".//*[@id='cb_post_title_url']").getText(), "Appium(Python)驱动手机淘宝App");
    }

    @AfterMethod
    public void afterMethod(){
        driver.closeApp();
        driver.quit();
    }
}

如果是自己公司的App,
请记得麻烦开发工程师开启WebView的debug模式!

猜你喜欢

转载自blog.csdn.net/yjlch1016/article/details/79507346
今日推荐