zoukankan      html  css  js  c++  java
  • Appium+python移动自动化测试(四)--Monitor/uiautomatorviewer工具及元素定位方法

    写在前面:

    本文介绍识别元素的工具和元素的定位方法,识别元素的工具主要有uiautomator和monitor,以及Appium Inspector(Windows下小编在1.7.0之后版本可使用,1.4.16版本不行),本系列教程用的appium1.4.16本文,故暂不介绍Appium Inspector。

    一、常用的识别元素的工具介绍

    1. 启动uiautomatorviewer.bat/monitor.bat。打开sdk/tools目录找到uiautomatorviewer.bat/monitor.bat.如图:

       

    2. 双击后启动,启动后如图



    二、Monitor连接手机

    1. win+R快捷键输入cmd打开,输入adb devices,确认当前有设备接入。
    2. 打开魔漫相机主界面,在Monitor界面点击手机机器人小图标,此按钮每次都会刷新最新界面

    三、定位元素

    1. 移动鼠标到需要定位的元素区域,并点击一下,使红色实线条框住。点击按钮进漫画

      Node Detail里能看到元素对应的属性
      resource-id:com.manboker.headportrait:id/entry_album_set
      class:android.widget.ImageView
      index 界面有多个相同属性时使用

    四、点击我的按钮

      通过resource-id定位并点击.最终代码如下:

    #coding:utf-8
    import time
    from appium import webdriver
    
    desired_caps = {}
    desired_caps['deviceName'] = '192.168.199.101:5555'
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '5.0'
    desired_caps['appPackage'] = 'com.manboker.headportrait'
    desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity'
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    time.sleep(8)#休眠8秒
    driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()#点击进入我的页面
    driver.quit()

    五、Appium工具简单使用介绍

    1. 双击appium.exe打开,进setting界面。如下截图1是被测apk的路径,截图2查看app的包名及Launch Activity,截图3是被测app的设备名
    2. 开启appium
      确认手机成功电脑,点击搜索按钮右侧的三角形图标启动appium服务,当界面出现如下现象则证明服务已启动。
    3. Remote远程控制(appium--General Setting界面)

      appium默认服务地址是127.0.0.1端口号4723,一般在本地机器上调试的话,无需修改。
      若是远程到某台自动化测试电脑运行则此ip就能派上用场了,通过修改如下代码即可
      driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

      改成:

      driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)

      截图如下:ipconfig查看电脑ip


    4. 远程连接
      浏览器输入:http://192.168.0.105:4723/wd/hub,看到如下界面,证明远程链接成功
    5. 脚本里的代码修改后如下
      #coding:utf-8
      import time
      from appium import webdriver
      desired_caps = {}
      desired_caps['deviceName'] = '192.168.199.101:5555'
      desired_caps['platformName'] = 'Android'
      desired_caps['platformVersion'] = '5.0'
      desired_caps['appPackage'] = 'com.manboker.headportrait'
      desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity'
      driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)
      time.sleep(8)#休眠8秒
      driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()
      time.sleep(5)
      driver.quit()

    六、元素定位(常用方法)

    1. 通过id定位
      取resource-id的值:driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set')
    2. 通过class_name定位
      取class内容:driver.find_element_by_class_name("android.widget.ImageView")
    3. 通过text定位
      使用text的内容:driver.find_elements_by_android_uiautomator("new UiSelector().text("登录")")
    4. 通过name定位:driver.find_element_by_name()
    5. 通过xpath定位:driver.find_element_by_xpath("//android.widget.TextView[@resource-id="com.manboker.headportrait:id/nologin_retry"]")
    6. 通过css_selector定位:driver.find_element_by_css_selector()
      如上的方法pycharm输入driver.find_element_by会自动匹配出来。

    OK,本文就介绍到这,下篇介绍Appium Python API。

  • 相关阅读:
    毕设进度21
    毕设进度20
    Javascript高级程序设计第三版-笔记
    前端踩过的坑
    thinkphp笔记
    PHP 发邮件《转》
    smarty笔记
    jquery笔记
    JS笔记
    php万年历
  • 原文地址:https://www.cnblogs.com/qianmaoliugou/p/9065114.html
Copyright © 2011-2022 走看看