zoukankan      html  css  js  c++  java
  • appium测试混合应用

    最近用appium测试公司APP,APP是原生+H5的模式,测试过程中发现大部分H5的页面使用原生的方式可以进行操作,只有少部分H5页面的按钮虽然在uiautomatorviewer的界面能解析出来,但是就是点击不了,使用appium的inspect也同样能解析就是点击不了.

    此时就需要将原生的driver切换为H5的driver

    切换方法:

    print(self.driver.contexts)  
    #查看所有的context
    #返回结果
    ['NATIVE_APP', 'WEBVIEW_com.huawei.browser']
    #其中NATIVE_APP为原生的,WEBVIEW开头的表示H5的
    #再使用如下方法切换到H5即可
    self.driver.switch_to.context("WEBVIEW_com.huawei.browser")
    #使用如下方法确认是否切换成功
    print(self.driver.current_context)

    切换到H5的driver后之前使用的原生方式无法点击的那个按钮查找元素的方式也需要修改

    之前用原生的方式写法为:

    //android.widget.Button[@text="确定"]

    切换为H5后的写法为:

    //button[text()="确定"]

    后续的操作如果要继续使用H5的方式来执行则后面所有元素的查找方式都需要修改为webdriver的写法

    如果需要切换回原生的方法执行则使用上面的方法切换回NATIVE_APP

    切换到H5后执行时发现还是提示找不到此元素

    使用Chrome浏览器查看发现打开了多个窗口

    所以还需要将窗口切换到存在此元素的页面

    切换方法如下:

    def switch_to_window(driver, title):
    """此方法是根据window的title来判断此window是否为我们需要的window"""
        windows = driver.window_handles
        #获取所有的window
        for window in windows:
            driver.switch_to.window(window)
            #切换到其他window
            if driver.title.__contains__(title):
                #判断此window的title与我们需要的window的title是否一致
                print("就是这个页面!!!")
                break

    切换到对应的window后可以成功点击此按钮

  • 相关阅读:
    练习2
    练习1
    如何生成添加前缀的顺序DIV
    mysql5.7 版本中 timestamp 不能为零日期 以及sql_mode合理设置
    MIME类型大全
    Intel Xeon E5-2620 v4参数
    webgl开发中添加IIS的mime类型
    jquery.validate动态更改校验规则
    mvc4
    asp.net防SQL/JS注入攻击:过滤标记
  • 原文地址:https://www.cnblogs.com/sprouts/p/11248771.html
Copyright © 2011-2022 走看看