zoukankan      html  css  js  c++  java
  • appium的xpath定位

    做自动化,元素定位是我们遇到的第一个困难。总是会有各种各样的问题,导致我们定位不到元素。前面一篇博客也写了元素定位的几种方法,今天主要分享一下xpath的定位方法。

    这里我们仍然拿计算器举例。

    比如我这里想去定位这个数字1的按钮。

    首先打开UIuiautomatorviewer

    我们鼠标点击一下数字7可以看到这个按钮的位置。我们上一篇中也说到了,在元素的属性中,class就是xpath的地址,我们是可以通过class来写xpath的。

    那么这里我们就可以写成:

    find_element_by_xpath("//android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.widget.Button[1]")
    看到这里感觉就像是剥洋葱一样。从外往里一层一层的剥,最终找到我们要定位的目标。
    在这里需要注意的是我们在xpath定位的时候不能从最外层的整个页面开始,那样是会报错的。要从包含该控件的最上层的class开始写,什么是包含该控件的最上层元素呢?就比如这里的android.support.v4.view.ViewPager,我们点击这个可以发现
    android.support.v4.view.ViewPager实际上就是整个键盘的区域。然后在键盘的区域中对数字键1再进行定位。
    还有就是上面我写的是android.widget.LinearLayout[3]/android.widget.Button[1]而不是android.widget.LinearLayout[2]/android.widget.Button[0]貌似和我们的UIuiautomatorviewer获取到的信息不一样,那么为什么会是这样呢?笔者其实也解释不清楚,哈哈。只是我觉得android.widget.LinearLayout[3]/android.widget.Button[1]是去定位第三个android.widget.LinearLayout中的第一个android.widget.Button元素。我记得我在书上看到的说法是xpath中的元素定位都是从1开始而不是从0开始,所以我通过android.widget.LinearLayout[3]/android.widget.Button[1]去定位到数字1的控件。这里讲的可能不对,我也在寻找答案中,找到答案后再更新过来。
  • 相关阅读:
    Pycharm 2016 注册码
    在mac上搭建python环境
    Carthage 的使用
    生成唯一的随机字符串
    utf-8 转码--网址转码
    让自己的项目支持 Carthage
    系统自带的语音合成
    个性化 UIAlertController
    cocoaPods 创建自己的依赖库
    appleDoc 使用
  • 原文地址:https://www.cnblogs.com/rookie-c/p/5886776.html
Copyright © 2011-2022 走看看