问题:

在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5,

需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美妆页面,美妆页面也是H5,

与天猫国际页面的webview一样,如果需要在webview里滑动页面,例如向下滑动到某个元素出现在屏幕上,直接在webview中使用swipe是不行的,

因为swipe只能在NATIVE_APP中滑动,不能在webview中执行。

解决:

在美妆页面中后,先切换回NATIVE_APP,执行swipe滑动到指定元素,滑动完后,再重新切换回对应的webview。

代码示例:

*** Settings ***
Suite Setup
Suite Teardown
Library AppiumLibrary *** Variables *** *** Test Cases ***
手机淘宝
Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=19 deviceName=127.0.0.1:21503 app=${CURDIR}${/}shoujitaobao_178.apk appPackage=com.taobao.taobao
... appActivity=com.taobao.tao.welcome.Welcome unicodeKeyboard=True resetKeyboard=True
Wait Until Page Contains Element xpath=//android.widget.TextView[@text=\"天猫国际\"] #等待手机淘宝打开完成
${width} Get Window Width
${height} Get Window Height
${x1}= Evaluate int(${width} * 0.5)
${y1}= Evaluate int(${height} * 0.75)
${y2}= Evaluate int(${height} * 0.25)
Click Element xpath=//android.widget.TextView[@text=\"天猫国际\"] #点击天猫国际
@{contexts} Get Contexts #获取contexts
Log Many @{contexts} #打印contexts
${cur_context} Get Current Context #获取当前contexts
log 当前context
log ${cur_context} #打印当前contexts
log 开始切换
Switch To Context WEBVIEW_com.taobao.taobao #切换contexts
log 切换成功
${cur_context} Get Current Context
log ${cur_context}
Page Should Contain Text 美妆
Click Element xpath=//*[@id="J_5132393350"]/div/div/div/a[2] #点击美妆菜单
Switch To Context NATIVE_APP
Switch To Context WEBVIEW_com.taobao.taobao
Page Should Contain Text 明星面膜
${cur_context_1} Get Current Context #获取当前contexts
log 当前context
log ${cur_context_1} #打印当前contexts
Comment ${page} Get Source
Comment log ${page}
Comment Click Element xpath=//*[@id="J_1456082907"]/div/div/div[1]/a[1]/div[1]/img
Switch To Context NATIVE_APP
Swipe ${x1} ${y1} ${x1} ${y2} 1000
sleep 5
Swipe ${x1} ${y1} ${x1} ${y2} 1000
sleep 5
[Teardown] Close All Applications 手机淘宝滑动
Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=19 deviceName=127.0.0.1:21503 app=${CURDIR}${/}shoujitaobao_178.apk appPackage=com.taobao.taobao
... appActivity=com.taobao.tao.welcome.Welcome unicodeKeyboard=True resetKeyboard=True
Wait Until Page Contains Element xpath=//android.widget.TextView[@text=\"天猫国际\"] #等待手机淘宝打开完成
${width} Get Window Width
${height} Get Window Height
${x1}= Evaluate int(${width} * 0.5)
${y1}= Evaluate int(${height} * 0.75)
${y2}= Evaluate int(${height} * 0.25)
Swipe ${x1} ${y1} ${x1} ${y2} 1000
sleep 5
[Teardown] Close All Applications *** Keywords ***

截图:

robotframework:appium切换webview后,在webview里滑动屏幕的更多相关文章

  1. robotframework:appium切换webview后,在第一个页面操作成功,跳转到第二个页面后,执行命令失败

    问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美 ...

  2. Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题

    如何切换webview进入小程序请参考https://testerhome.com/topics/12003 脚本思路:进入webview后会存在多个handle同Web页签一样,获取所有的handl ...

  3. Appium解决native+webview混合型APP(公众号、小程序)切换webview后元素无法定位问题

    问题:最近在做一个安卓+H5混合开发的APP自动化测试,发现在从native切换到webview后,元素仍然无法找到,报错:no such element 思路:于是思考webview会不会像web页 ...

  4. Appium切换webview时候报chromedriver版本问题

    前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...

  5. appium+python自动化41-切换webview时候报chromedriver版本问题

    前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...

  6. Appium对京东App中WebView的处理

    Appium用uiautomator无法对WebView进行className定位,所以只能模拟动作.可以用android sdk自带的monitor工具,先进行截图,再用任意图像处理软件,获取截图的 ...

  7. 与webView进行交互,webView小记

    本文转载至 http://www.verydemo.com/demo_c101_i46895.html 一.与webView进行交互,调用web页面中的需要传参的函数时,参数需要带单引号,或者双引号( ...

  8. Android WebView Memory Leak WebView内存泄漏

    在这次开发过程中,需要用到webview展示一些界面,但是加载的页面如果有很多图片就会发现内存占用暴涨,并且在退出该界面后,即使在包含该webview的Activity的destroy()方法中,使用 ...

  9. 安卓android WebView Memory Leak WebView内存泄漏

    Android WebView Memory Leak WebView内存泄漏 在这次开发过程中,需要用到webview展示一些界面,但是加载的页面如果有很多图片就会发现内存占用暴涨,并且在退出该界面 ...

随机推荐

  1. 51 NOD 1383 整数分解为2的幂

    设f[i]为i这个数的划分方案,则: 1.i是奇数的时候,最前面只能放1,所以f[i] = f[i-1] 2.i是偶数的时候,最前面可以放1也可以不放1,而不放1的时候数列都是偶数所以 f[i] = ...

  2. SSD TRIM

    SSD 在操作方式上与传统磁性驱动器不同,并且它们需要在软件上另行处理以达到功能优化.-- Don Watkins 编译自: https://opensource.com/article/17/1/s ...

  3. mini-uboot 启动过程简单分析

    单片机有最小系统,所谓最小系统,就是单片机能正常工作所需要的最少外设.对于Uboot来说,同样有个最小系统,因为Uboot最主要的功能就是引导内核.下面我们通过一个简单的Mini-Uboot来分析Ub ...

  4. BUPT复试专题—众数(2014)

    题目描述 有一个长度为N的非降数列,求数列中出现最多的数,若答案不唯一输出最小的数 输入 第一行T表示测试数据的组数(T<100) 对于每组测试数据: 第一行是一个正整数N表示数列长度 第二行有 ...

  5. 生活娱乐 ATM机键盘余温泄露密码

    安全系统存漏洞 ATM机键盘余温或泄露密码 ATM机会泄露你的银行卡密码? 据美国<大众科学>网站8月30日报道,你的手指在ATM机上留下的余温能让尾随你而来的黑客准确获知你的密码. 加利 ...

  6. Android新手入门2016(7)--布局

    布局,这个在服务端变成是没有的,也是服务端的人学习client的一道坎吧. 曾经用cocos2d-x写小游戏的时候就是这个非常难懂,或者能用,可是理解不多的话,非常难写出好的布局,难以适合商业化的应用 ...

  7. [WF4.0 实战] 事件驱动应用

    看到题目或许非常多人都会疑问,为什么要使用事件监听呢? 眼下的认识: 1,使用事件监听能够将工作流的结点返回值返回到client 2,能够实现等待与重新启动,相当于之前的WaitActivity创建B ...

  8. 关于cocos2d-x 3.0的点击交互处理

    转自:http://blog.csdn.net/fansongy/article/details/12716671 1.概述     游戏也好,程序也好,仅仅有能与用户交互才有意义.手机上的交互大致能 ...

  9. 【网络协议】IP协议、ARP协议、RARP协议

    IP数据报 IP是TCP/IP协议族中最核心的协议,全部的TCP.UDP.ICMP.IGMP数据都以IP数据报的格式传输.IP仅提供尽力而为的传输服务.假设发生某种错误.IP会丢失该数据.然后发送IC ...

  10. ++*p,(*p)++,*p++与*++p四者的区别

    四者的区别(*和++优先级相同默认从右向左运算) ++*p相当于++(*p),表示先给p指向的变量值加1,然后取该变量的值. (*p)++相当于先取p指向的变量,然后该变量值加1. *p++相当于*( ...