zoukankan      html  css  js  c++  java
  • 遇安卓内嵌h5 webview页面定位方法

    现在Android应用 层开发的方向有两种:客户端开发和HTML5移动端开发!

    所谓的HTML5端就是:HTML5 + CSS + JS来构建 一个网页版的应用,而这中间的媒介就是这个WebView,而Web和网页端可以通过JS来进行交互,

    比如, 网页读取手机联系人,调用手机相关的API等!

    而且相比起普通的客户端开发,HTML5移动端有个优势:

    可以用百分比来布局,而且如果HTML5端有什么大改,我们不用像客户端那样去重新下一个APP,

    然后 覆盖安装,我们只需修改下网页即可!

    当然HTML5也有个缺点,就是性能的问题, 数据积累,耗电问题,还有闪屏等等.

    webview概念:

    Android内置webkit内核的高性能浏览器,而WebView则是在这个基础上进行封装后的一个 控件,

    WebView翻译:网页视图,可以简单的看作一个可以嵌套到界面上的一个浏览器控件!

    如何在使用appium时正确识别webview呢?

    方法:页面元素有webview,或者定位时只能定位到一整块区域!

    简要说明:

    对于android和webview来说,用context可以区分出来哪一个是android和webview

    Android原生的context是:NATIVE_APP

    这种嵌套的h5页面的context是: Webview

    ------------->>>应用在appium自动化里面 ,被称为“context上下文”

    如何定位呢?

    比如:遇到从android原生遇到有webview的页面时,此时就需要先切换到webview这个页面控件去

    然后才能定位.(就如同selenium定位webiframe一样)

    操作如下:

    1、先打印当前页面的context。看看是NATIVE_APP还是webview的?

    driver.current_context      #先获取当前页面的context。

    2、要定位webview里面的元素信息,就切换到指定的context里面去!(然后要定位NATIVE_APP安卓原生的元素信息,那么就又需要切换回去)

    Driver.switch_to.context(“NATIVE_APP”)  #切换到android原生里面去!

    Driver.switch_to.context(“WEBVIEW_com.xxx”)   #切换到webview里面去!

    如果遇到有多个:

    #context=driver.contexts  #这表示获取所有的context上下文

    #driver.switch_to.context(context[1])    #通过下标,选择某个切换进入

    注意:有些只有NATIVE_APP那么就不需要切换

    比如:打印context的时候只有NATIVE_APP

    那么这种情况就只能使用appium服务端里面的inspect去定位了(有其他方式也可以比如翻q后去chrome://inspect调试),

    并且这种情况不需要去switch切换就可以实现定位!!!

     

  • 相关阅读:
    12.extern(转)
    QT错误笔记-Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.
    11.static(转)
    C/C++ 错误笔记-在给结构体中的指针赋值时,要注意该指针是否已指向内存空间
    10.动态库
    【转载】pygame的斜线运动
    题解-python-CodeForces 227B
    题解-python-CodeForces 227A
    【笔记】Python简明教程
    Pyhton核心编程-Chap2习题-DIY
  • 原文地址:https://www.cnblogs.com/QiKa/p/14585733.html
Copyright © 2011-2022 走看看