问题:

在用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. Volley 源码解析 StringRequest解析

    Android Vollety是一个很有用的框架,所以想借鉴前人思想,分析这个源代码. 参考: http://blog.csdn.net/crazy__chen/article/details/464 ...

  2. 未能加载文件或程序集“System.EnterpriseServices, Version=4.0.0.0或2.0.0.0

    未能加载文件或程序集“System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50 ...

  3. poj1870--Bee Breeding(模拟)

    题目链接:点击打开链接 题目大意:给出一个蜂窝,也就是有六边形组成,从内向外不断的循环(如图).给出两个数的值u,v按六边形的走法,由中心向六个角走.问由u到v的的最小步数. 首先处理处每个数的坐标, ...

  4. Codeforces Round #258 (Div. 2/A)/Codeforces451A_Game With Sticks

    解题报告 http://blog.csdn.net/juncoder/article/details/38102263 n和m跟木棍相交,问一人取一交点(必须是交点.且取完后去掉交点的两根木棍),最后 ...

  5. C语言连接MySQL(codeblocks)

    #include <stdio.h> #include <winsock2.h> #include <mysql.h> /*数据库连接用宏*/ #define HO ...

  6. 【Leetcode】经典的Jump Game in JAVA

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  7. 全文索引--自己定义chinese_lexer词典

    本文来具体解释一下怎样自己定义chinese_lexer此法分析器的词典 初始化数据 create table test2 (str1 varchar2(2000),str2varchar2(2000 ...

  8. 细说linux IPC(三):mmap系统调用共享内存

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途]         前面讲到socket的进程间通 ...

  9. 【前端JS】radio 可单选可点击取消选中

    普通情况下 radio 单选框仅仅能实现多选一的效果,可是一旦选择当中一个后,这个单选框就不可点击取消其选中状态了.这样的功能在某些业务环境下并不适用.有时我们既须要单选框的多选一效果.也须要复选框的 ...

  10. Linux启动过程笔记

    Linux启动过程 1.启动流程(BIOS->MBR:Boot Code->引导GRUB->载入内核->运行init->runlevel) 2./boot/grub/下有 ...