appium测试微信公众号的WebView

简介:在自动化测试微信公众号的WebView时,经常遇到切不到WebView里面去,可以参考如下方式解决

1、在微信任何聊天窗口输入debugx5.qq.com,发送出去,如下图:

appium测试微信公众号的WebView_第1张图片

2、点击debugx5.qq.com,打开微信的x5内核调试页面,然后切到信息页签,勾选”是否打开TBS内核Inspector调试功能”
appium测试微信公众号的WebView_第2张图片

3、AndroidDriver的DesiredCapabilities里添加如下设置:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

全部代码如下:

package com.kdzwy.util;

import io.appium.java_client.android.AndroidDriver;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

/**
 * 作者:灵枢 on 2016/10/26 19:29
 * 

* 邮箱:[email protected] */ public class InitAppium { /** * @param apkName app名 * @param deviceName 测试名,命令行输入adb devices获取 * @return AndroidDriver * @throws MalformedURLException */ public static AndroidDriver launchApp(String apkName,String deviceName) throws MalformedURLException { //设置apk的路径 File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot, "apps"); File app = new File(appDir, apkName); //设置自动化相关参数 DesiredCapabilities capabilities = new DesiredCapabilities(); //使用哪种移动平台 capabilities.setCapability("platformName", "Android"); //启动哪种设备,是真机还是模拟器 capabilities.setCapability("deviceName",deviceName); //如果是模拟器输入Android Emulator 红米note3 db3489d //不要再次安装apk capabilities.setCapability("noReset",true); //不用重新签名 capabilities.setCapability("noSign",true); //设置安卓系统版本 // capabilities.setCapability("platformVersion", "4.4.4"); //默认4.4 //设置apk路径 capabilities.setCapability("app", app.getAbsolutePath()); //支持unicode键盘,输入中文设置 capabilities.setCapability("unicodeKeyboard", "True"); //测试结束后将键盘重置为系统默认的输入法。如果为“false",在测试结束后输入法还是appium的测试输入法 capabilities.setCapability("resetKeyboard", "True"); //使用哪种自动化引擎,默认appium,安卓4.4以下版本的Webview没有使用Chrome内核,可以使用该模式 // capabilities.setCapability("automationName","Selendroid"); //设置app的主包名和主类名 // capabilities.setCapability("appPackage", "com.example.android.contactmanager"); // capabilities.setCapability("appActivity", ".ContactManager"); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("androidProcess", "com.tencent.mm:tools"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); return driver; } }

你可能感兴趣的:(自动化测试)