zoukankan      html  css  js  c++  java
  • appium(七)微信小程序

    从本质上来说,微信小程序就是在微信中的一个H5页面,但是微信用到了腾讯的X5框架来实现,因此如果要调试微信小程序,需要进行X5框架的设置;

    设置方法:

      在mumu模拟器中,只需要在微信中访问debugmm.qq.com/?forcex5=true即可使用;(参考:https://www.cnblogs.com/xiaogongjin/p/11783801.html

    X5框架设置好之后,其元素定位就和H5页面一样,native使用appium的原生安卓定位,webview也可以使用selenium定位,注意切换context

    注意:1.尽量使用微信小号,有一定被封的危险

          2.如果保留消息记录,记得设置DesiredCapabilities的noReset=true,防止微信消息被清空

       3.可以在浏览器打开chrome://inspect,点击inspect即可打开微信小程序webview的调试界面,使用DevTools必须 Fan*Qiang,如果已 Fan*Qiang,还是空白的,可以添加host解

    决,host如下:

      61.91.161.217 chrome-devtools-frontend.appspot.com 
      61.91.161.217 chrometophone.appspot.com

    由于使用木木模拟器时,小程序闪退,下面是使用的是真机

    import io.appium.java_client.android.AndroidDriver;
    import org.openqa.selenium.By;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    import java.io.IOException;
    import java.net.URL;
    
    public class WeixinTest {
        public static void main(String[] args) throws IOException, InterruptedException {
            DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    
            desiredCapabilities.setCapability("deviceName", "*****");
            desiredCapabilities.setCapability("platformName", "Android");
            desiredCapabilities.setCapability("platformVersion", "9.0");
            desiredCapabilities.setCapability("appPackage", "com.tencent.mm");
            desiredCapabilities.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");
    /**
     * 下面的设置非常重要
     */
            // 支持X5内核应用自动化配置
            desiredCapabilities.setCapability("recreateChromeDriverSessions", true);
    /*      ChromeOptions使用来定制启动选项,因为在appium中切换context识别webview的时候,
            把com.tencent.mm:toolsmp的webview识别成com.tencent.mm的webview.
            所以为了避免这个问题,加上androidProcess: com.tencent.mm:toolsmp
    */ ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("androidProcess", "WEBVIEW_com.tencent.mm:toolsmp"); desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options); // 初始化会默认将chrome浏览器打开,需要将Browser置为空 desiredCapabilities.setBrowserName(""); desiredCapabilities.setCapability("chromedriverExecutable", "C:\Users\HJY\Downloads\chromedriver_win32weixin\chromedriver.exe"); //可选参数 //不要重置签名 desiredCapabilities.setCapability("noSign", true); //不清除缓存 desiredCapabilities.setCapability("noReset", true); //设置使用unicode键盘,让自动化脚本实现过程中能够输入中文,成对使用,单独使用下面的某一个属性会ignore desiredCapabilities.setCapability("unicodeKeyboard", true); desiredCapabilities.setCapability("resetKeyboard", true); AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities); Thread.sleep(5000); //找到并打开美团的微信小程序 driver.findElement(By.id("com.tencent.mm:id/r_")).click(); driver.findElement(By.xpath("//android.widget.EditText[@resource-id='com.tencent.mm:id/m7']")).sendKeys("美团"); Thread.sleep(2000); driver.findElement(By.id("com.tencent.mm:id/s5")).click(); Thread.sleep(10000); //切换到webview定位 System.out.println("所有的contextHandles:"+driver.getContextHandles()); System.out.println("切换前"); driver.context("WEBVIEW_com.tencent.mm:toolsmp"); System.out.println("切换后:"+driver.getContext()); Thread.sleep(5000); //叉掉弹屏广告 driver.findElement(By.xpath("//wx-view[@class='newuser--close-btn']")).click(); Thread.sleep(1000); //点击美食 driver.findElement(By.xpath("//wx-view[@data-name='美食']")).click(); Thread.sleep(1000); //切换到native定位 driver.context("NATIVE_APP"); Thread.sleep(5000); //定位native //点击更多 driver.findElement(By.xpath("//android.widget.ImageButton[@content-desc='更多']")).click(); Thread.sleep(1000); //点击回到首页 String cancelButton="cmd /c start adb shell input tap 530,2250"; Runtime.getRuntime().exec(cancelButton); } }

    参考踩坑:https://www.cnblogs.com/4wheel/p/9954255.html

    https://blog.csdn.net/qq_38741986/article/details/99702537

  • 相关阅读:
    android 请求网络异步载入
    A new Graph Game
    Android 高仿 频道管理----网易、今日头条、腾讯视频 (能够拖动的GridView)附源代码DEMO
    模块管理常规功能自己定义系统的设计与实现(16--模块数据的导出和打印[1])
    ganglia收集hbase的metrics
    ViewPager中View的复用
    PLY格式文件具体解释
    【RefactoringCode】The description of the refactoring book
    2.5星|《故事课2》:几个经典广告案例点评
    2星|叶檀《大破局》:2016年以来的财经时评文集,水平在平均线以下
  • 原文地址:https://www.cnblogs.com/yjh1995/p/12169198.html
Copyright © 2011-2022 走看看