范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

APPIUM测试微信小程序

  目录
  一、测试微信小程序  1.准备工作  2.操作步骤  3.注意  4.强制设置安卓的进程  5.指定 BrowserName 等于空
  二、代码演示  一、测试微信小程序
  微信小程序和微信公众号的测试方法都是一样的。微信小程序和微信公众号也就是混合应用。
  公众号、小程序都是 WebView,它是个网页,但是是微信的网页,但是微信的网页是绝对不会对外开放 WebView Debug 的。即便这里看到了 WebView,也获取不到,获取不到就切换不了。
  重点是进入小程序里面,这个里面就是网页了。小程序基本是网页做的,点进来之后,就能看到 WebView。
  这种情况下这样测:
  由于腾讯系 qq、微信等都是基于腾讯自研 x5 内核,安卓是谷歌的 WebView 内核。腾讯系 qq、微信等相当于在谷歌的 WebView 内核上面做了个封装了,不是原生的 WebView 内核,所以用谷歌的 WebView 内核就有点问题了。
  微信小程序,用模拟器可能是搞不定的,模拟器确实很容易闪退,用真机测试比较靠谱。  1.准备工作微信最新版本。  Uc-devtools 工具。  安卓手机(5.0+版本)。  Chromedriver 针对自己的版本,通过 Uc-devtools 工具可以识别到 Chromedriver 应该是什么版本。(它跟 WebView 的版本是不一样的,但它同样也代表 Chrome 的版本,需要下载对应的 Chromedriver 驱动它,虽然他不是我们原生的 WebView,只是包装了下,骨子里还是 WebView。)  Appium 版本-Server 最好在 1.7 以上。  2.操作步骤
  想要调试微信的小程序或者公众号的时候:  必须开启它的调试模式,微信的调试功能。
  可以给任意一个聊天窗口(你玩的好的朋友)发送这个链接:debugx5.qq.com
  平时用微信搜索一个小程序、公众号在主页面一搜就可以了。但是写自动化脚本不行哦,人家做了控制的。
  微信在新版本中对小程序调试入口加上了限制:在微信主窗口下打开小程序(顶部有个下拉,你曾经用过的小程序,只要往下拉一下,全部都能看得见),在这个地方打开小程序是识别不到的,所以自动化代码就会失效。  打开微信->发现->搜一搜,搜索必要商城,点击对应小程序进入到主页面。进入小程序后看到的是个 WebView 页面。
  显示的 webview 版本是 57.xxx,这里就是微信 X5 内核的版本,不是 android System webview 版本。同一台设备,自带的是 39.0,这里就变成 57.0 了。Chromedriver 是支持 57.0 的。这里要注意区别,要下载一个 Chromedriver,放在 Appium 启动的时候指定的对应路径就可以了。同样也可以点击 inspect 查看页面元素。  3.注意
  页面空白加载不出来,需要 fq;
  还有,如果点击右上角关闭了小程序之后,一定要记得清理下对应的小程序进程(关闭之后小程序还在后台运行),再起点击重启小程序。
  如果没有走这个路径: 在微信->发现->搜一搜搜索小程序,即可发现在inspect工具中可以将对应url显示出来 。去找小程序,可能代码就出现一些问题。
  所以它这个比较麻烦。通过 Uc-devtools 工具识别了元素,得到了 chromedriver 的版本。
  切换的时候还有问题,问题较多:  4.强制设置安卓的进程
  微信和 qq 很多进程,需要确定当前的 web 网页,当前的操作是处于哪个进程当中。
  官方文档中的描述是这样的:
  现在确实不是内核 WebView,是腾讯封装的。所以这个地方需要将这个东西开启出来: desired_caps["recreateChromeDriverSessions"]=True ,支持 X5 内核应用的自动化配置。
  在 cmd 可以看出,操作的网页在 com.tencent.mm:toolsmp 里面,12042 对应的进程是com.tencent.mm:toolsmp 。不能找成了别的进程,别的进程就是在别的页面了。
  5.指定 browserName 等于空
  Web 自动化可以设置参数,这里也是可以设置参数的。
  H5 操作、驱动浏览器的时候,是 Web 网页,有一些 Web 应用。Web 应用的时候就需要制定浏览器是 Chrome 还是别的浏览器。 desired_caps["browserName"]=""
  不是真的在一个浏览器当中打开一个应用,只是一个应用当中带着小程序,小程序中带着浏览器性质的。所以指定 browserName 等于空。  二、代码
  以下代码片段只提供思路,请根据实际情况修改。  // 支持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", "com.tencent.mm:toolsmp"); desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options); // 初始化会默认将chrome浏览器打开,需要将Browser置为空 desiredCapabilities.setBrowserName("");// 休眠一下 Thread.sleep(5000); // 找到微信的发现并点击 androidDriver.findElementByAndroidUIAutomator("new UiSelector().text("发现")").click(); // 点击发现里面搜一搜 androidDriver.findElementByAndroidUIAutomator("new UiSelector().text("搜一搜")").click();  Thread.sleep(2000);  // 点击搜索框 androidDriver.findElement(By.id("com.tencent.mm:id/jd")).click();         androidDriver.findElement(By.id("com.tencent.mm:id/jd")).sendKeys("xxx软件测试");  Thread.sleep(2000);  // 点击搜索结果中的xxx软件测试(采用adb命令坐标点击的方式) execAdb("adb shell input tap 300 200");  Thread.sleep(4000);  // 点击xxx软件测试小程序 execAdb("adb shell input tap 300 500");  // 等待小程序加载完成 Thread.sleep(10000);  // 获取到所有的contexts System.out.println("所有的contexts:" + androidDriver.getContextHandles());  // 切换到小程序webview对应的context中 androidDriver.context("WEBVIEW_com.tencent.mm:toolsmp"); Thread.sleep(2000);  // 获取到所有的handles Set windowHandles = androidDriver.getWindowHandles(); System.out.println("所有的windowsHandles" + windowHandles);  // 遍历所有的handles,找到当前页面所在的handle:如果pageSource有包含你想要的元素,就是所要找的handle // 小程序的页面来回切换也需要:遍历所有的handles,切换到元素所在的handle for (String windowHandle : windowHandles) {     System.out.println("切换到对应的windowHandle:" + windowHandle);     androidDriver.switchTo().window(windowHandle);     Thread.sleep(2000);     if (androidDriver.getPageSource().contains("xxx")) {         break;     } } // 点击xx androidDriver.findElement(By.xpath("//*[@id="js-tab-bar"]/li[3]")).click();  // 通过js滚动到指定的元素 (这个元素已经在文档中间已经存在,但是还是不可见的) WebElement ele=androidDriver.findElement(By.xpath("//em[text()="xx"]")); Thread.sleep(2000); // 将Driver实例化为js对象 JavascriptExecutor jExecutor=(JavascriptExecutor)androidDriver; // 滑动到上面定位到的元素的位置 jExecutor.executeScript("arguments[0].scrollIntoViewIfNeeded(true);", ele);  Thread.sleep(2000);
  滑动到上面定位到的元素的位置 jExecutor.executeScript("arguments[0].scrollIntoViewIfNeeded(true);", ele);  Thread.sleep(2000);

大神级YouTube视频下载器UmmyVideoDownloader你还在为YouTube视频不能下载烦恼吗?你的YouTube视频打不开?小编推荐YouTube视频下载器UmmyVideoDownloadermac,它是一款用于下载YouTube五菱凯捷到底如何?三位车主都说到了头等舱座椅,确实不错作为五菱在10万级家用车市场中的首秀,银标凯捷自从亮相以来,凭借创新性的家用大四座定位,可是受到了不少消费者的青睐,截止6月份今年累计销量达到了34649辆,在同级市场中算是排在前Mac系统免费办公软件LibreOfficeforMac的常见问题解答什么是OpenDocument?Libreoffice使用OpenDocument格式(ODF),这是一种完全开放的ISO标准化文件格式,可以保证永久访问您的数据。(当然,您可以使140组烟雾环绕飘动特效合成4K分辨率视频素材视频素材介绍40组烟雾环绕飘动特效合成4K分辨率视频素材,由RED摄像机拍摄的烟雾视频素材,例如圆环状烟雾视频特效,薄薄的烟雾视频特效,滚动的烟雾视频特效等。视频加载中支持的软件有数据隐私安全问题不容忽视,这家企业快速加码人才队伍建设最近关于数据隐私问题被大家广泛关注和讨论,现在每个的手机上最少都有大几十个APP,衣食住行娱乐工作通通都能在手机上搞定。但是我们在使用的同时,我想大家肯定都遇到过有的APP如果你不配语音控制,177匹的1。5T引擎,新宝骏RS5才12w多,哈弗H6买早了俗话说三十而立,对于一个男人来说,三十岁左右就到来该成家立业的时候,既要兼顾事业,也要照顾到家庭,这也算是男人人生中的一个转折点。而我正好处在这转折点上,不过,我成家比较早,今年3小米MIX4又爆黑科技!这操作属实有点秀上个星期华为P50系列正式发布,手机影像技术再次刷榜,开售也更是秒空。但是也有一些朋友过来问我,说有点失望,华为P50系列居然不支持5G,而且还用的高通芯片,搞不懂为什么还要出4G双11智能手表怎么选Amazfit跃我GTR3Pro表盘个性,功能拉满今年的双11已经正式拉开了序幕,不知道各位尾款人是不是都抢购到了心仪的产品呢?今天小编就给大家分享一款,闭着眼都能够入手的智能手表华米Amazfit跃我GTR3Pro,作为996打雪佛兰开拓者不到26万,年轻奶爸的选择?这次真是诚意给足了4月16日,随着开拓者上市,雪佛兰的SUV家族产品线基本铺设完毕,从小型SUV创酷到刚上市的中大型SUV开拓者,每个级别1个车型,而且价格带衔接也十分完美,可以说这是雪佛兰在充分了福特旗舰金牛座,越级的表现却换不回销量的爬升豪华品牌车型的定价越来越亲民,与之对应的,是一些非豪华品牌的车型,也尝试越级而战。福特金牛座,作为长安福特的旗舰轿车,刚上市的时候曾定位是越级神车。可惜现实是残酷的,目前金牛座的销6月份的黑马车型,一国产新车当月卖出7000辆,两款销量超1。4万辆纵观新出炉的6月份汽车销量,有一些热门车型一直以来就很热销,在6月份也取得了波澜不惊的成绩,比如紧凑级SUV中的国产三强哈弗H6长安CS75和吉利博越依然热销,在A级轿车中,轩逸朗
理直气壮做懒人这份懒人秘籍最低54元起冬日来临气候逐渐变冷,人们也进入了犯懒的季节。尤其是上班族,一天劳累过后回家只想躺在床上休息,但是犯懒的时光其它事情怎么办呢?现今的懒人最明显的标志就是花钱买时间,顾名思义就是除了小米有品结束独立运营背后,小米加速整合线上线下渠道中国商报(记者焦立坤见习记者赵熠如)小米有品结束独立运营,并入小米中国区零售业务板块,在线下一年开出8000家门店的背景下,小米此举何意?小米有品并入中国区零售业务近日小米宣布旗下简单一步绕过TPM安装Windows11Windows11已经推送了两个月,各种补丁没停过,系统也趋于稳定,所以各位有所顾虑的伙伴可以尝试升级了。可是有些稍老的机器是没办法直接安装Windows11,官方检测工具有很多限最近大火的华为手环6怎么样值得买吗,深度分析告诉你答案华为手环6作为华为近期发布的一款定位旗舰的智能手环,其配置了1。47英寸屏幕拥有多达200表盘全天候对我们人体的血压血氧心率等方面进行实时监测,售价为349。这款和智能手表一样的智新疆一企业入选国家级服务型制造示范名单天山网讯(记者马伊宁报道)近日,工业和信息化部公布了第三批服务型制造示范名单,88家示范企业48家示范平台8家共享制造类示范平台25个共享制造示范项目和9个示范城市入选,其中,新疆OLED和LCD屏有啥区别?拿苹果这两部手机对比,原来差距在这里OLED和LCD屏有啥区别?拿苹果这两部手机对比,原来差距这么大现在苹果全系都在用OLED屏,不再使用LCD屏,许多人大为遗憾,认为LCD屏是优于OLED的。甚至喊出了LCD永不为元宇宙与金钱游戏元宇宙这个概念,最近比较火。尤其是Facebook的小扎,把公司名称都改了,并且宣布allin,以后不干别的,要全力搞元宇宙,把这个概念进一步推向火热。有些朋友可能不一定完全了解,想要顶级处理器,想要大电池,这三款旗舰手机堪称到顶旗舰机除了堆料硬核以外,还要具备优秀的用户体验,所以旗舰机大多不会配备大电池,其目的便是为用户提供一个优秀的手感。不过,并不是所有人的需求一样,可能有人喜欢轻薄手感,对续航要求不高联想的成功不是个人的成功最近联想事件沸沸扬扬,有说对的,但也说错的,首先本人要为司马先生点赞,全国人民代表大会是我国的核心政治基础,让一切权力接受人民的监督,这无可厚非,这不是管闲事,也不是所谓吃饱撑得,拿下NBA独家转播权的腾讯,为什么没有和CBA继续合作呢?不知不觉中,CBA新赛季已经默默的开启,为了让球员尽快进入比赛状态,联赛制定了季前赛,让各支球队率先热热身。当球迷按照往常习惯打开腾讯APP的时候,却发现没有了直播。原来通过仔细查华为Mate50核心配置曝光,Mate40低至百元机,买早的花粉心碎11月22日,知情人士爆料称,华为Mate50系列将于明年初加入。新机将采用麒麟990骁龙898混合方案,全4G网络,首发搭载鸿蒙OS3。0。值得一提的是,由于华为Mate50新机