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

问题:

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

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

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

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

解决:

在天猫国际页面点击美妆菜单后,先切换回NATIVE_APP,再重新切换回对应的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=\"天猫国际\"]
    Click Element    xpath=//android.widget.TextView[@text=\"天猫国际\"]
    @{contexts}    Get Contexts
    Log Many    @{contexts}
    ${cur_context}    Get Current Context
    log    当前context
    log    ${cur_context}
    log    开始切换
    Switch To Context    WEBVIEW_com.taobao.taobao
    log    切换成功
    ${cur_context}    Get Current Context
    log    ${cur_context}
    Page Should Contain Text    美妆
    Click Element    xpath=//*[@id="J_5132393350"]/div/div/div/a[2]
    Page Should Contain Text    明星面膜
    @{contexts1}    Get Contexts
    Log Many    @{contexts1}
    ${cur_context1}    Get Current Context
    log    当前context
    log    ${cur_context1}
    Switch To Context    NATIVE_APP
    Switch To Context    WEBVIEW_com.taobao.taobao
    ${page}    Get Source
    log    ${page}
    Click Element    xpath=//*[@id="J_1456082907"]/div/div/div[1]/a[1]/div[1]/img
    sleep    2
    Scroll Down    xpath=//*[@id="J_2195168767"]/div/div[2]/a/div[1]/img[1]
    sleep    5
    [Teardown]    Close All Applications

*** Keywords ***

示例图:

原文地址:https://www.cnblogs.com/yrxns/p/8465037.html

时间: 2024-10-09 10:23:55

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

appium 测试微信公众号 切换webview

appium测试微信公众号的时候 切换webview报找不到contextdriver.context("WEBVIEW_com.tencent.mm:tools");io.appium.java_client.NoSuchContextException: No such context found. (WARNING: The server did not provide any stacktrace information)Command duration or timeout:

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

之前一直有个bug没有解决. 今天,终于解决了. 疑问过程: app是混合应用,项目做了H5优化之后,以前的用例执行总会失败,体现在原来的一个元素点击无反馈 排查原因:1.项目做了H5优化,2.测试的代码也做了优化 2.项目的代码更改之后,用原有的findby查找元素,元素的定位一直是小于0,不会变 3.findby是在初始化的时候填入的元素控件信息,后续如果不刷新可能根本就不会更改定位. 解决办法:将元素的定位改变后,getPageSource一下,重新获取控件信息. while (login

Appium 微信 webview 的自动化技术

最近好多人问微信webview自动化的事情, 碰巧我也在追微信webview的自动化和性能分析方法. 先发出来一点我的进展给大家参考下. 此方法用于Android平台, iOS请自行解决 微信的设置 用微信打开debugx5.qq.com, 这是个微信的x5内核调试页面. 你可以在任何聊天窗口内输入这个网址. 并打开它. 勾选"是否打开TBS内核Inspector调试功能" 使用ChromeDriver编写测试用例 首先安装ChromeDriver从官方下载或者从你的appium的安装

Appium自动化WebView中元素的操作

在App开发过程中,很容易用到第三方的WebView控件,这个属于移动端混合型App.在我们做自动化测试的过程中,就要对这种情况进行处理,最通用的办法就是先将appium切换到webview模式然后按查找web元素的方法对WebView里面的元素进行操作即可.具体实施方法,可以参考:http://www.tuicool.com/articles/bIBRZze 可是也有很多情况,如新浪微博第三方授权登录页面(如图一),这个嵌入到App中的第三方WebView,在查上下文信息的时候,找不到对应的W

Python + Robotframework + Appium 之APP自动化测试小试牛刀(Android)

Robotframework如何好?这里先不说了~ Python更不用说了~ Appium前面的文章有介绍~ 今天直接来Python+Robotframework+Appium 三者结合起来,对Andoid app小试牛刀下,后续再作更多介绍. 1.环境搭建(之前已经介绍过Python+Appium了) 直接用pip命令安装: pip install robotramework pip install robotframework-appiumlibrary 最好再安装  pip install

ios配置启动后的第一个页面

在AppDelegate.swift中配置ViewController.swift为启动后的第一个页面 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions

Chrome启动后打开第一个网页很慢的解决方案

Chrome启动后打开第一个网页很慢的解决方案 Chrome/Chromium以速度快著称,最近每当打开chrome的时候,打开第一个页面都非常慢,往往需要数十秒的时间,经分 析,应该是卡在了域名解析这一步了.上网查找资料之后,原来是升级时候把IE的代理设置为“自动检测”,所以每次Chrome开启时候都要进行一次检测查 询.关闭自动检测的方法有很多,下面两个方法简单易行,读者选择其中之一即可: 1.打开Internet选项(邮件点击IE图标或在IE浏览器菜单栏选择)-> 连接 –> 局域网LA

Python + Robotframework + Appium 之APP自动化测试实践(一)

前面的文章已经介绍了Robotframework+Appium的安装及小试牛刀(For Android) 下面来个简单的实践,话不多说,还以是计算器为例,直接上代码,详情如下: 1 *** Settings *** 2 Library AppiumLibrary 3 4 *** Test Cases *** 5 case1 6 [Documentation] Test open app 7 Open Application http://localhost:4723/wd/hub platfor

echarts切换tab时,第一个图表显示,第二个图表不显示的解决办法

首先这种情况,我在网上看到了好多人问,确实也有正解,但是只是说出了其错误出现的原因,并没有给出解决方法. 我也是深受其害,所以呢,在这里记录一下,分享给还在困扰着的你们,迅速找出解决办法. 首先,我先简单介绍一下,我这里出现错误的情境. 原来刚刚遇到这个问题的时候,是在点击多个tab选项之后,出现了地图不显示的情况,然后呢,我就一直在根据打开多个tab之后,地图不显示这个思路进行寻找bug的原因,后来问了问同事,发现原来这个错误的原因,不是因为打开多个tab页面导致的,而是因为打开的多个tab选