【原创】Appium测试微信公众号

appium如何测试微信公众号,请看下文,酌情参考。作者:沙陌 Appium交流群:534129320

1. 我的appium版本是1.6.x,appium的java-client版本是java-client-5.0.0-BETA4,selenium版本是3.0.1,jdk1.8,微信版本6.5.13

2. 执行前必须先开启微信的debug模式,如何开启请查看https://x5.tencent.com/tbs/guide/debug/season1.html 

3. 开启后即可用chrome://inspect 查看公众号界面的元素信息

4. 准备一个2.20版本的chromedriver.exe文件,下载地址 http://chromedriver.storage.googleapis.com/index.html?path=2.20/   下载以后放在任何位置都可以

4. 对应的Appium脚本如下:

   4.1 初始化drvier代码

  		DesiredCapabilities caps = new DesiredCapabilities();
		// 表示我们的设备名字,在安卓下这个参数必须有,但是值可以随便写
		caps.setCapability(MobileCapabilityType.DEVICE_NAME, "xxx");// “devicesName”
		// 表示appium服务的session过期时间,单位是秒,默认是60秒
		caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600);
		// 表示在安装的时候不对应用进行重签名操作,因为有的应用在重签名之后就无法正常使用
		caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
		// 下面两项是用来使用appium自带的unicode输入法,来隐藏键盘并且支持中文输入
		caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true);
		caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);
		
		caps.setCapability(MobileCapabilityType.UDID, "不要照抄,这里你设备的udid");
		File chromedriver=new File("X:/不要照抄,这里写你自己的路径/chromedriver2.20.exe");
		caps.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.tencent.mm");
		caps.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.tencent.mm.ui.LauncherUI");
		caps.setCapability(MobileCapabilityType.NO_RESET, true);
		caps.setCapability(AndroidMobileCapabilityType.RECREATE_CHROME_DRIVER_SESSIONS, true);
		caps.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, chromedriver.getAbsolutePath());
		ChromeOptions options=new ChromeOptions();
		options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
		caps.setCapability(ChromeOptions.CAPABILITY, options);
		AndroidDriver driver = new AndroidDriver(
				new URL("http://127.0.0.1:4723/wd/hub"), caps);

4.2 脚本代码:

		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
		driver.findElement(By.xpath("//*[@text='PROWISER']")).click();
		driver.findElement(By.xpath("//*[@text='行程攻略']")).click();
		driver.findElement(By.xpath("//*[@text='推送图文']")).click();
		Thread.sleep(5000);
		Set contexts=driver.getContextHandles();
		//这里是用来打印你当前的context的,如果看不到tencent的webview,说明你的debug开的有问题
		for(String s:contexts){
			System.out.println(s);
		}
		//切换driver到公众号的context上
		driver.context("WEBVIEW_com.tencent.mm:tools");
		driver.findElement(By.xpath("//*[text()='更多']")).click();
		Thread.sleep(5000);
		//当你的公众号操作有页面切换时,很可能需要先切回原生的context再切到webview上才能继续执行
		driver.context("NATIVE_APP");
		driver.context("WEBVIEW_com.tencent.mm:tools");
		driver.findElement(By.xpath("//*[@title='芦笋淮山百合炒鲜虫草']")).click();
		
		Thread.sleep(5000);
		driver.quit();
  • 发表于 2017-08-24 21:30
  • 阅读 ( 4353 )
  • 分类:默认分类

7 条评论

请先 登录 后评论
不写代码的码农
沙陌

神一样的存在

14 篇文章

作家榜 »

  1. hey girl 181 文章
  2. 王前前 137 文章
  3. 柠檬 118 文章
  4. lamking 105 文章
  5. 云少 105 文章
  6. 腾讯移动品质中心TMQ 104 文章
  7. humortony 82 文章
  8. 开心的阳光 41 文章