appium操作微信公众号H5 web页面
安卓微信公众号的H5页面是webview,一般操作需要切换context。
在执行如下步骤,就能直接像识别native样识别webview
1、代码追加:
- ChromeOptions options = new ChromeOptions();
- options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
- capabilities.setCapability(ChromeOptions.CAPABILITY, options);
2、在微信任何对话框 发送 "//deletetbs"
appium操作微信H5
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Set;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.chrome.ChromeOptions;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.openqa.selenium.support.ui.WebDriverWait;
- import org.testng.annotations.Test;
- import com.fc.htgl.utils.ConfigUtil;
- import io.appium.java_client.android.AndroidDriver;
- public class TestWechat {
- public AndroidDriver<WebElement> driver;
- public WebDriverWait wait = null;
- public void apkStart(String udid, String packageName, String activityName, String appiumServer) {
- DesiredCapabilities capabilities = new DesiredCapabilities();
- capabilities.setCapability("deviceName", udid);
- capabilities.setCapability("udid", udid);
- // 设置每次运行不重新启动被测试app
- capabilities.setCapability("noReset", "true");
- capabilities.setCapability("fullReset", "false");
- // 设置安卓系统版本
- capabilities.setCapability("platformVersion", "6.0");
- capabilities.setCapability("platformName", "Android");
- // session 延迟时间
- capabilities.setCapability("newCommandTimeout", 24000);
- capabilities.setCapability("device", "selendroid");
- // capabilities.setCapability("app", app.getAbsolutePath());
- capabilities.setCapability("unicodeKeyboard", "True");
- capabilities.setCapability("resetKeyboard", "True");
- // 设置app的主包名和主类名 微信程序包名和activity 名
- capabilities.setCapability("appPackage", packageName);
- capabilities.setCapability("appActivity", activityName);
- ChromeOptions options = new ChromeOptions();
- options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
- capabilities.setCapability(ChromeOptions.CAPABILITY, options);
- // 启动
- try {
- System.out.println("http://" + ConfigUtil.getBoxApkAppiumServer() + "/wd/hub");
- driver = new AndroidDriver<WebElement>(new URL("http://" + appiumServer + "/wd/hub"), capabilities);
- wait = new WebDriverWait(driver, 10);
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- @Test
- public void test(){
- this.apkStart("G6N7MBIZJ7YHLZO7", "com.tencent.mm", "com.tencent.mm.ui.LauncherUI", "127.0.0.1:4723");
- //点击公众号
- driver.findElementByAndroidUIAutomator("text(\"sdfsdfsd\")").click();
- //进入公众号的H5页面
- driver.findElementByAndroidUIAutomator("text(\"sssss\")").click();
- driver.findElementByAndroidUIAutomator("text(\"sfdfdfdf\")").click();
- //微信h5 操作
- driver.findElementByXPath("//android.widget.EditText[@content-desc='添加备注']").sendKeys("abababab");;
- driver.findElementByXPath("//android.view.View[@content-desc='sdfsdfsdfsdf']").click();
- Set<String> context = driver.getContextHandles();
- for (String contextName : context) {
- System.out.println(contextName);
- }
- }
- }
appium操作微信公众号H5 web页面的更多相关文章
- 微信公众号h5页面alert去掉域名
h5页面内嵌到微信公众号提示信息alert的时候会显示域名,去掉域名显示重写alert方法: window.alert = function(name){ var iframe = document. ...
- 微信公众号H5支付遇到的那些坑
简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ...
- 使用Appium进行微信公众号自动化测试
查看Android的webview视图版本:手机链接电脑后在电脑Chrome打开页面chrome://inspect/#devices查看Android的Chrome内核版本 下载与该版本相对 ...
- 微信公众号H5支付
微信支付说明1.统一下单接口 统一支付接口: url: https://api.mch.weixin.qq.com/pay/unifiedorder 目的:通过此接口来创建预支付订单,获取订单支付需要 ...
- 基于APPIUM测试微信公众号的UI自动化测试框架(结合Allure2测试报告框架)
框架初衷 前两周组内的小伙伴跟我说她现在测试的微信公众号项目(保险)每次上新产品时测试起来很费时,存在大量的重复操作(点点点),手工测试每个产品可能需要半天到一天的时间,复杂的产品需要两天. 由于保险 ...
- 三星note4,微信公众号开发,页面闪退
在做微信公众号开发时,使用三星note4测试,有一个select框闪退的问题出现. 出现该问题的原因是该选择框,设置了appearance:none;属性.查找了官方解释是: 所有主流浏览器都不支持 ...
- 微信公众号H5用户授权
其实不是很难,总结起来就是: 1.微信公众号管理后台设置redirect_uri. 2.然后发起一个请求去重定向获取code,然后把获取到code之后重定向的URL放在获取code的URL中 3.获取 ...
- 微信公众号h5页面自定义分享
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 微信公众号H5支付步骤
微信公众平台:https://mp.weixin.qq.com/ 进入 微信支付 管理>开通支付功能. 微信支付|商户平台: 设置安全目录:https://pay.weixin.qq.com/i ...
随机推荐
- 【转】gcc选项
http://zodiac1111.github.io/blog/config-gcc-warning/
- 在Foreda8上安装libaio-0.3.105-2.i386.rpm
libaio-0.3.105-2.i386.rpm是安装MySql必须的包,可以从这里下载:http://pan.baidu.com/share/link?shareid=2348086735& ...
- asp.net网站项目调用page,或者ashx页面不能用反射
public class TestHandler : System.Web.IHttpHandler { public bool IsReusable { get { return false; } ...
- Office EXCEL VBA数组如何使用
Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例() Dim x As Long, y As Long Dim ...
- 帝吧fb出征是什么原因?帝吧fb出征事情始末 帝吧出征FB打“台独” 台湾网民崩溃:巨人之墙爆了
帝吧出征FB打"台独" 台湾网民崩溃:巨人之墙爆了 发表时间:2016-01-20 21:08:10 字号:A-AA+ 关键字: 帝吧帝吧出征FB帝吧出征FB打台独台独脸书巨人之墙 ...
- UVa 10642 - Can You Solve It?
题目:二维平面上的整数点.用路径链接起来(0,0)->(1.0)->(0.1)->(2,0)->.. 给你两点坐标.求两点间步长(在路径上的距离). 分析:简单题. 我们发现点 ...
- CSS3 calc()函数使用
1.calc是什么? calc是英文单词calculate(计算)的缩写,用于动态计算长度值. calc()函数支持 "+", "-", "*&quo ...
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8927832 # -*- coding: utf-8 -*- #----------- ...
- plsql 连接oracle数据库的2种方式
plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...
- Q1:Valid Parentheses
Question: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine i ...