如何在appium中获取不可见的页面源?

Posted

技术标签:

【中文标题】如何在appium中获取不可见的页面源?【英文标题】:How to get invisible page source in appium? 【发布时间】:2021-08-19 11:11:38 【问题描述】:

当我滑动到下一页并获取 page_source 时,我无法获取最后一个 page_source 内容

也就是说我只能得到当前可见的page_source

但我想抓取大量页面,只获取可见页面源效率低

有什么方法可以在 appium 的 page_source 之外隐藏?我用python。

谢谢

【问题讨论】:

【参考方案1】:

需要了解您想捕捉哪个页面 - 原生页面还是 webview? 尝试获取用于调试的页面源 - https://appium.io/docs/en/commands/session/source/。

也许您需要切换上下文以获取页面源?

这里是我如何实现上下文切换的。

    在某些页面对象文件中,我保留了 android(或 ios)上下文。

     ANDROID_CONTEXTS = 
         'webview': 'WEBVIEW_ru.myapp',
         'native': 'NATIVE_APP'
     
    

    在一些测试中,我将上下文从 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_payoform()
    
         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/

【讨论】:

以上是关于如何在appium中获取不可见的页面源?的主要内容,如果未能解决你的问题,请参考以下文章

appium 怎么跳转页面定位元素

如何在IE插件的子域中获取IFrame的页面源

获取页面的可见文本

appium iOS真机获取剪贴板内容

appium应用之“获取元素信息和元素操作”(android)

如何获取屏幕的宽度