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

Posted yrxns

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ***

示例图:

技术分享图片

 

以上是关于robotframework:appium切换webview后,在第一个页面操作成功,跳转到第二个页面后,执行命令失败的主要内容,如果未能解决你的问题,请参考以下文章

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

robotFrameWork APPIUM实现对安卓APK的自动化测试

Robotframework-Appium 之常用API

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

robotframework + appium实例

Robotframework + Appium 之常用元素定位方法