问题:

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

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

与天猫国际页面的webview一样,此时点击美妆页面的元素,提示找不到元素,用get source获取美妆页面源码,

获取到的源码是第一个天猫国际页面的源码,所以在美妆页面执行操作找不到元素。

解决:

在天猫国际页面点击美妆菜单后,先切换回NATIVE_APP,再重新切换回对应的webview,此后就能执行美妆页面的元素了

代码示例:

  1. *** Settings ***
  2. Suite Setup
  3. Suite Teardown
  4. Library AppiumLibrary
  5.  
  6. *** Variables ***
  7.  
  8. *** Test Cases ***
  9. 手机淘宝
  10. 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
  11. ... appActivity=com.taobao.tao.welcome.Welcome unicodeKeyboard=True resetKeyboard=True
  12. Wait Until Page Contains Element xpath=//android.widget.TextView[@text=\"天猫国际\"]
  13. Click Element xpath=//android.widget.TextView[@text=\"天猫国际\"]
  14. @{contexts} Get Contexts
  15. Log Many @{contexts}
  16. ${cur_context} Get Current Context
  17. log 当前context
  18. log ${cur_context}
  19. log 开始切换
  20. Switch To Context WEBVIEW_com.taobao.taobao
  21. log 切换成功
  22. ${cur_context} Get Current Context
  23. log ${cur_context}
  24. Page Should Contain Text 美妆
  25. Click Element xpath=//*[@id="J_5132393350"]/div/div/div/a[2]
  26. Page Should Contain Text 明星面膜
  27. @{contexts1} Get Contexts
  28. Log Many @{contexts1}
  29. ${cur_context1} Get Current Context
  30. log 当前context
  31. log ${cur_context1}
  32. Switch To Context NATIVE_APP
  33. Switch To Context WEBVIEW_com.taobao.taobao
  34. ${page} Get Source
  35. log ${page}
  36. Click Element xpath=//*[@id="J_1456082907"]/div/div/div[1]/a[1]/div[1]/img
  37. sleep 2
  38. Scroll Down xpath=//*[@id="J_2195168767"]/div/div[2]/a/div[1]/img[1]
  39. sleep 5
  40. [Teardown] Close All Applications
  41.  
  42. *** Keywords ***

示例图:

robotframework:appium切换webview后,在第一个页面操作成功,跳转到第二个页面后,执行命令失败的更多相关文章

  1. robotframework:appium切换webview后,在webview里滑动屏幕

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

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

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

  3. Appium 学习二:切换Webview

    由于测试的APP是混合应用,即包含了原生代码和web网页. 混合应用在应用程序中嵌入了Webview,Webview是用来访问网页的一个控件.Webview内核也分为原生和第三方(比如腾讯X5内核) ...

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

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

  5. Appium Hybrid混合应用测试——Native切换WebView

    Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...

  6. [转]RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第一篇【安装】

    前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试的文章都是取自于乐于分享知识于网络的好心人们,所以我也希望我的知识可以分享给大家. 首先我们先罗列一下我们要安装的软件 ...

  7. Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)

    Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...

  8. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第一篇【安装】

    文章来源http://blog.csdn.net/deadgrape/article/details/50563119 前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试 ...

  9. appium 切换native/ webview,findby,还有页面元素定位一直小于0的问题的解决

    之前一直有个bug没有解决. 今天,终于解决了. 疑问过程: app是混合应用,项目做了H5优化之后,以前的用例执行总会失败,体现在原来的一个元素点击无反馈 排查原因:1.项目做了H5优化,2.测试的 ...

随机推荐

  1. 深入GCD(三): Dispatch Sources

    何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象.当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中.说的 ...

  2. XML Publisher Template Type - Microsoft Excel Patch

    XML Publisher Template Type - Microsoft Excel Patch Oracle XML Publisher > Templates > Create ...

  3. Python基础语法05--函数模块

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  4. 从头认识java-15.5 使用LinkedHashSet须要注意的地方

    再接着上一个章节.我们来聊一下使用LinkedHashSet须要注意的地方. LinkedHashSet特点: (1)元素是有顺序的 (2)元素是不反复的 (3)底层数据结构是依照链表的结构存储的 ( ...

  5. nginx+play framework +mongoDB+redis +mysql+LBS实战总结

    nginx+play framework +mongoDB+redis +mysql+LBS实战总结(一) 使用这个样的组合结构已经很久了,主要是实现web-server,不是做网站,二是纯粹的数据服 ...

  6. C#json数据的序列化和反序列化(将数据转换为对象或对象集合)

    引用 System.Runtime.Serialization.Json

  7. Intel CPU Microarchitecture

    http://en.wikipedia.org/wiki/Intel_Tick_Tock Atom Roadmap[16]   Fabrication process Microarchitectur ...

  8. ruby简单的基础 2

    1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| p ...

  9. java中使用反射获取pojo(实体)类的全部字段值

    说起反射.不得不说它实在是太强大了,通过反射就能够轻轻松松拿到各种东东,假设你想在项目中解除对某个类的依赖,能够考虑用反射. 今天跟大家分享的是通过java中的反射,获取pojo类的全部字段值. 为什 ...

  10. u-boot简单学习笔记(三)——AR9331 uboot启动分析

    1.最开始系统上电后 ENTRY(_start)程序入口点是 _start  由board/ap121/u-boot.lds引导 2._start: cpu/mips/start.S 是第一个源程序文 ...