• appium操作H5应用


    1.首先需要将包调成debug模式(将webview设置为debug模式,让开发开启),才可以操作H5页面

      解决方案:开发提供debug包

    2.WebView里面就是H5页面

    WebView是chrome浏览器的内核,安卓使用是的是谷歌浏览器的内核(安卓就是谷歌的),因此使用对应版本的chromedriver。

    因此要使用手机webview对应的版本的chromedriver

    查看手机webview版本:

    1:手机设置中搜索webview查看对应版本信息

     2.如果要切换到H5(webview)的情况下,必须含有含有 对应版本webview的chromedrive

    如果不知道自己手机的webview版本方式二:

    1:先切到webview中,然后配置项中不传chromedriver地址。这样代码就会报错,我们可以从报错中知道webview的版本

    切换webview代码实现:

    from appium import webdriver
    
    #混合app自动化
    boss_desired_capabilities = {
        'platformName': 'Android',
        'plathformVersion': '10',
        'deviceName': 'boss_desired_capabilities',
        'appActivity': '.MainActivity',
        'appPackage': 'com.example.haiwen.myhybirdapp',
        'noReset': True,
        'newCommandTimeout': 6000,
        'automationName': 'UiAutomator2',
        #跳过UI2的安装,如果第一次运行程序,不要添加该配置
        #'skipServerInstallation':True
        #需要制定对应WebView版本的chrmoedriver 驱动
        'chromedriverExecutable':r'C:Usersxibo.zhuworkmyselfmyProjectmyProjectappium_basicCodecontext_chromedriver_win32chromedriver.exe',  # 这里填写的是驱动所在的目录
    
    }
    #-----------------------------------控制原生控件-----------------------
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',boss_desired_capabilities)
    #输入豆瓣地址
    driver.find_element_by_id('com.example.haiwen.myhybirdapp:id/editText').send_keys('https://m.douban.com/home_guide')
    #点击跳转按钮
    driver.find_element_by_id('com.example.haiwen.myhybirdapp:id/button').click()
    
    #----------------------------控制WebView(H5)------------------------------
    #查看当前所在的context
    print(driver.current_context) #原生的:NATIVE_APP
    #获取所有的context
    print(driver.contexts) #['NATIVE_APP', 'WEBVIEW_chrome', 'WEBVIEW_com.example.haiwen.myhybirdapp', 'WEBVIEW_com.huawei.browser']
    #如果以html控件形式自动化webview需要切到webview对应的context
    #切换webview成功的前提
    #1.被测app开启webview debug模式----从app市场安装的不具备此条件
    #2.需要选择符合该操作系统当前webiew版本的chromedriver
    
    #切换到H5的WebView上
    driver.switch_to.context('WEBVIEW_com.example.haiwen.myhybirdapp')
    print(driver.current_context)#WEBVIEW_com.example.haiwen.myhybirdapp已经切换到webview了
    #定位H5到输入框,搜索电影名称
    driver.find_element_by_css_selector('[class="search-input"]').send_keys('肖生克救赎
    ')
    #获取电影评分
    rate = driver.find_element_by_css_selector('body > div.page > div > div > ul > li:nth-child(2) > ul > li:nth-child(1) > a > div > p > span:nth-child(2)').text
    
    print(f'电影评分是{rate}')
    #如果要切回原生应用
    # driver.switch_to.context('NATIVE_APP')
    driver.quit()
  • 相关阅读:
    shiro中 UnknownAccountException
    shiro Filter--拦截器
    java构造器执行顺序一个有趣的简单实例
    Java Serializable接口(序列化)理解及自定义序列化
    js中绑定事件处理函数,使用event以及传递额外数据
    js中的this
    jQuery + ashx 实现图片按比例预览、异步上传及显示
    asp.net中的参数传递:Context.Handler 的用法
    javascript 对象详解
    ashx 文件的运用
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14269225.html
Copyright © 2020-2023  润新知