安卓微信公众号的H5页面是webview,一般操作需要切换context。

在执行如下步骤,就能直接像识别native样识别webview

  1、代码追加:

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

  2、在微信任何对话框 发送 "//deletetbs"

appium操作微信H5

  1. import java.net.MalformedURLException;
  2. import java.net.URL;
  3. import java.util.Set;
  4. import org.openqa.selenium.WebElement;
  5. import org.openqa.selenium.chrome.ChromeOptions;
  6. import org.openqa.selenium.remote.DesiredCapabilities;
  7. import org.openqa.selenium.support.ui.WebDriverWait;
  8. import org.testng.annotations.Test;
  9.  
  10. import com.fc.htgl.utils.ConfigUtil;
  11.  
  12. import io.appium.java_client.android.AndroidDriver;
  13.  
  14. public class TestWechat {
  15. public AndroidDriver<WebElement> driver;
  16. public WebDriverWait wait = null;
  17. public void apkStart(String udid, String packageName, String activityName, String appiumServer) {
  18.  
  19. DesiredCapabilities capabilities = new DesiredCapabilities();
  20. capabilities.setCapability("deviceName", udid);
  21. capabilities.setCapability("udid", udid);
  22. // 设置每次运行不重新启动被测试app
  23. capabilities.setCapability("noReset", "true");
  24. capabilities.setCapability("fullReset", "false");
  25. // 设置安卓系统版本
  26. capabilities.setCapability("platformVersion", "6.0");
  27. capabilities.setCapability("platformName", "Android");
  28. // session 延迟时间
  29. capabilities.setCapability("newCommandTimeout", 24000);
  30. capabilities.setCapability("device", "selendroid");
  31. // capabilities.setCapability("app", app.getAbsolutePath());
  32. capabilities.setCapability("unicodeKeyboard", "True");
  33. capabilities.setCapability("resetKeyboard", "True");
  34. // 设置app的主包名和主类名 微信程序包名和activity 名
  35. capabilities.setCapability("appPackage", packageName);
  36. capabilities.setCapability("appActivity", activityName);
  37.  
  38. ChromeOptions options = new ChromeOptions();
  39. options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
  40. capabilities.setCapability(ChromeOptions.CAPABILITY, options);
  41.  
  42. // 启动
  43. try {
  44. System.out.println("http://" + ConfigUtil.getBoxApkAppiumServer() + "/wd/hub");
  45. driver = new AndroidDriver<WebElement>(new URL("http://" + appiumServer + "/wd/hub"), capabilities);
  46. wait = new WebDriverWait(driver, 10);
  47. } catch (MalformedURLException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. }
  51.  
  52. }
  53. @Test
  54. public void test(){
  55. this.apkStart("G6N7MBIZJ7YHLZO7", "com.tencent.mm", "com.tencent.mm.ui.LauncherUI", "127.0.0.1:4723");
  56. //点击公众号
  57. driver.findElementByAndroidUIAutomator("text(\"sdfsdfsd\")").click();
  58. //进入公众号的H5页面
  59. driver.findElementByAndroidUIAutomator("text(\"sssss\")").click();
  60. driver.findElementByAndroidUIAutomator("text(\"sfdfdfdf\")").click();
  61. //微信h5 操作
  62. driver.findElementByXPath("//android.widget.EditText[@content-desc='添加备注']").sendKeys("abababab");;
  63. driver.findElementByXPath("//android.view.View[@content-desc='sdfsdfsdfsdf']").click();
  64.  
  65. Set<String> context = driver.getContextHandles();
  66. for (String contextName : context) {
  67. System.out.println(contextName);
  68.  
  69. }
  70. }
  71.  
  72. }

appium操作微信公众号H5 web页面的更多相关文章

  1. 微信公众号h5页面alert去掉域名

    h5页面内嵌到微信公众号提示信息alert的时候会显示域名,去掉域名显示重写alert方法: window.alert = function(name){ var iframe = document. ...

  2. 微信公众号H5支付遇到的那些坑

    简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ...

  3. 使用Appium进行微信公众号自动化测试

    查看Android的webview视图版本:手机链接电脑后在电脑Chrome打开页面chrome://inspect/#devices查看Android的Chrome内核版本     下载与该版本相对 ...

  4. 微信公众号H5支付

    微信支付说明1.统一下单接口 统一支付接口: url: https://api.mch.weixin.qq.com/pay/unifiedorder 目的:通过此接口来创建预支付订单,获取订单支付需要 ...

  5. 基于APPIUM测试微信公众号的UI自动化测试框架(结合Allure2测试报告框架)

    框架初衷 前两周组内的小伙伴跟我说她现在测试的微信公众号项目(保险)每次上新产品时测试起来很费时,存在大量的重复操作(点点点),手工测试每个产品可能需要半天到一天的时间,复杂的产品需要两天. 由于保险 ...

  6. 三星note4,微信公众号开发,页面闪退

    在做微信公众号开发时,使用三星note4测试,有一个select框闪退的问题出现. 出现该问题的原因是该选择框,设置了appearance:none;属性.查找了官方解释是: 所有主流浏览器都不支持 ...

  7. 微信公众号H5用户授权

    其实不是很难,总结起来就是: 1.微信公众号管理后台设置redirect_uri. 2.然后发起一个请求去重定向获取code,然后把获取到code之后重定向的URL放在获取code的URL中 3.获取 ...

  8. 微信公众号h5页面自定义分享

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 微信公众号H5支付步骤

    微信公众平台:https://mp.weixin.qq.com/ 进入 微信支付 管理>开通支付功能. 微信支付|商户平台: 设置安全目录:https://pay.weixin.qq.com/i ...

随机推荐

  1. 【转】gcc选项

    http://zodiac1111.github.io/blog/config-gcc-warning/

  2. 在Foreda8上安装libaio-0.3.105-2.i386.rpm

    libaio-0.3.105-2.i386.rpm是安装MySql必须的包,可以从这里下载:http://pan.baidu.com/share/link?shareid=2348086735& ...

  3. asp.net网站项目调用page,或者ashx页面不能用反射

    public class TestHandler : System.Web.IHttpHandler { public bool IsReusable { get { return false; } ...

  4. Office EXCEL VBA数组如何使用

    Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例()  Dim x As Long, y As Long  Dim ...

  5. 帝吧fb出征是什么原因?帝吧fb出征事情始末 帝吧出征FB打“台独” 台湾网民崩溃:巨人之墙爆了

    帝吧出征FB打"台独" 台湾网民崩溃:巨人之墙爆了 发表时间:2016-01-20 21:08:10 字号:A-AA+ 关键字: 帝吧帝吧出征FB帝吧出征FB打台独台独脸书巨人之墙 ...

  6. UVa 10642 - Can You Solve It?

    题目:二维平面上的整数点.用路径链接起来(0,0)->(1.0)->(0.1)->(2,0)->.. 给你两点坐标.求两点间步长(在路径上的距离). 分析:简单题. 我们发现点 ...

  7. CSS3 calc()函数使用

    1.calc是什么? calc是英文单词calculate(计算)的缩写,用于动态计算长度值. calc()函数支持 "+", "-", "*&quo ...

  8. [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫

    转自:http://blog.csdn.net/pleasecallmewhy/article/details/8927832 # -*- coding: utf-8 -*- #----------- ...

  9. plsql 连接oracle数据库的2种方式

      plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...

  10. Q1:Valid Parentheses

    Question: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine i ...