zoukankan      html  css  js  c++  java
  • Appium 学习二:切换Webview

    由于测试的APP是混合应用,即包含了原生代码和web网页。

    混合应用在应用程序中嵌入了Webview,Webview是用来访问网页的一个控件。Webview内核也分为原生和第三方(比如腾讯X5内核)

    一、获取webview中的页面信息

    1、在手机(模拟器)中,设置—关于手机—多次点击版本号,切换到开发者模式

    2、处于开发者模式,设置界面会有开发人员选项,然后将USB调试功能开启。

    3、在pc端  chrome浏览器中输入 chrome://inspect/#devices 回车。如果此时测试app所在页面是有webview,就会显示网页的链接。点击inspect即可显示网页html

    4、首次点击inspect 打开的是空白网页,第一次需要翻墙,google会自动下载一个插件,然后就可以正常显示html

    二、切换webview

    1、先获取Webview的context

    self.driver.contexts()  # 获取所有的contexts。可以用这种方法判断是否有webview。

    ['NATIVE_APP', 'WEBVIEW_com.tsframework.myapp181296']

    self.driver.current_context() # 获取当前页面的context

    NATIVE_APP

    2、#切换到Webview的context

    self.switch_to('com.tsframework.myapp181296') 

    三、切换webview遇到的问题及解决方法

    在实际测试过程中,出现了在执行self.switch_to('com.tsframework.myapp181296') 时,程序停住,不往下继续执行。查看appium日志发现,报错 chrome not reachable

     1、替换对应的chromedriver,

    从chrome://inspect/#devices 可以看到 webview版本是44,然后下载对应chrome版本为44 的chromedriver版本,替换到appium中。

    路径如下:E:Appium ode_modulesappium ode_modulesappium-chromedriverchromedriverwin(appium默认到这个路径下获取chromedriver)

    或者指定chromedriver的路径  

    desired_caps['chromdriverExecutable']=path  ##chromdriverExecutable:指向webdriver executable的绝对本地路径

    2、修改如下配置

    desired_caps['chromeOptions']={'androidProcess':"com.tsframework.myapp181296"}

    可参考:https://testerhome.com/topics/6954

  • 相关阅读:
    Flutter之CupertinoSwitch和Switch开关组件的简单使用
    docker的/var/run/docker.sock参数
    Elasticsearch _reindex Alias使用
    json_decode的结果是null
    1.1-1.4 hadoop调度框架和oozie概述
    1.8-1.10 大数据仓库的数据收集架构及监控日志目录日志数据,实时抽取之hdfs系统上
    1.6-1.7 定义agent 读取日志存入hdfs
    zabbix监控华为交换机
    1.1-1.5 flume架构概述及安装使用
    1.16 sqoop options-file参数进行运行任务
  • 原文地址:https://www.cnblogs.com/who-care/p/9232595.html
Copyright © 2011-2022 走看看