如何通过浏览器登录在安卓系统上自动进行appium测试



我正在使用Appium为Android应用程序设置测试自动化。我可以启动Android应用程序,查找元素,输入文本并单击按钮。我遇到的问题是,我的应用程序有一个用户登录,这需要从Identity Server向网页启动web浏览器(https://github.com/IdentityServer)。出于讨论目的,这是一个包含登录输入字段和带有登录按钮的密码的网页。

所以自动化过程是:

  1. 启动应用程序
  2. 在文本字段中输入登录页面(即身份服务器(的url
  3. 点击保存按钮(保存设置(
  4. 单击登录按钮,打开web浏览器进入登录页面(成功登录后,控件返回应用程序(

这是我被卡住的地方。我如何使用Appium找到文本控件并输入登录名和密码,然后找到并单击"登录";网页按钮(它将重定向回测试中的Android应用程序,并继续进行其余的自动应用程序测试。(?

Appium的检查器只能从com.sec.android.app.browser中找到一个视图。它找不到任何浏览器元素。与Android的UI Automator Viewer相同。

有人有什么想法吗?

您需要将上下文从本机应用程序切换到webview。

以下是我如何在测试中实现它。

  1. 在一些页面对象文件中,我保留了Android上下文。

    ANDROID_CONTEXTS = {
    'webview': 'WEBVIEW_ru.myapp',
    'native': 'NATIVE_APP'
    }
    
  2. 在一些测试中,我将上下文从Native切换到Webview。

    @allure.link(url='https://jira.project.tech/browse/TEST-1', name='TEST-1 - Fill payment form')
    @allure.title('Fill payment form')
    def test_card_standard_1_month(appdriver):
    Paywall(appdriver).press_one_month_button()
    PaymentsPage(appdriver).select_card_payment()
    PaymentsPage(appdriver).press_payment_button()
    
    appdriver.switch_to.context(ANDROID_CONTEXTS['webview'])
    Payform(appdriver).fill_and_submit_payform()
    appdriver.switch_to.context(ANDROID_CONTEXTS['native'])
    assert SuccessPayment(appdriver).get_successful_payment_title_text() == 'Your subscription is successful!'
    

您可以检查应用程序中的所有可用上下文。此处提供更多信息->http://appium.io/docs/en/commands/context/set-context/

相关内容

  • 没有找到相关文章

最新更新