• Appium移动自动化测试-----(六)2.AppiumDesktop录制脚本生成极简脚本


    AppiumDesktop启动页面:

    启动AppiumDesktop以后点击该页面右上角的Start New Session按钮,就会启动一个新的会话窗口(如下图),在这个窗口我们需要配置一些Desired Capabilities信息:

    platformName:'Android'    #Android手机
    platformVersion:'4.3  '       #模拟器系统是4.3
    deviceName:'192.168.105.101::5555'    # 这个是模拟器的设备名称

    app:'D:\app\SHIPPER_Android_TEST_4.1.1.0.apk'        # 安装自己待测app,类型为filepath

    appPackage:'com.taobao.taobao'    #app的包名称

    appActivity:'com.taobao.tao.welcome.Welcome  '       #activity的名称

    使用命令查看:adb shell dumpsys activity activities

    noReset:是一个bool值,选TRUE。
    如果想要使用真机,必须再加一个字段udid,是text类型。

     2.参数配置好之后可以保存下,然后启动模拟器,再点Start Session按钮就能定位元素了

    定位元素信息

    写Appium脚本的最重要的一个信息是定位元素,获取元素的ID或者xpath等等类似的信息。
    只需要点击Inspector最左边一栏的Select按钮,然后再去点击所要获取信息的元素即可,当元素突出显示时,其信息将显示在Inspector右侧的详细视图中。有些是用accessibility id 定位,有些是xpath定位或者其他的定位信息,但是在iOS应用上Appium推荐使用accessibility id 来定位一个元素信息。
    在Inspector窗口的中间是您的应用程序的层次结构,表示为XML。

    滑动页面(元素)

    现在可以定位当前页面的元素了,但是怎么滑动到下一个页面或者怎么滑动页面上的滑动条(slider)呢?
    选中Swipe。模拟在手机上的操作手势,从起点到终点各点击一下,就实现了滑动。

     

    点击某一个元素

    如果我们想要点击某一个元素进行下一步操作,比如在输入框内输入文本或者弹出一个alert该怎么操作呢?
    选中Tap。然后再去点击textfield或者alert我们就可以进行下一个操作了。如果想要定位alert上的元素信息,那就在alert弹出的时候在切换到Select,然后点击想要定位的元素就行了。

    录制脚本

    这真的是一个很实用的功能。他似乎解决了我们一个大问题,那就是该使用哪个API的问题以及脚本的编写规范的问题。对于初步入坑的小伙伴来说是一个很好的参考。脚本录制功能就是那个眼睛图标,如下图:

    脚本录制.png
    脚本录制.png

    点击该按钮以后如下图:

    脚本录制.png
    脚本录制.png

    然后就可以在左边随便对App进行操作了,此处我进行的操作有:点击输入框,点击Alert,滑动滑动条,滑动屏幕,点击软键盘并输入文本(这里我选择是Python语言)。这时候Inspector生成的脚本是非常简单的,只是对你操作的步骤进行记录,还不能执行,这段脚本如下:

    TouchAction(driver).tap([(167, 73)])
    TouchAction(driver).tap([(81, 300)])
    TouchAction(driver).tap([(303, 414)])
    el1 = driver.find_element_by_accessibility_id("IntegerA")
    el1.click()
    el1.send_keys("Hello")
    TouchAction(driver)
    .press({x: 198, y: 393})
    .moveTo({x: 50: y: 0})
    .release()
    TouchAction(driver)
    .press({x: 335, y: 264})
    .moveTo({x: -183: y: -3})
    .release()
    TouchAction(driver).tap([(191, 498)])
    TouchAction(driver).tap([(357, 698)])

    反正我没看懂这段代码。别担心,这只是Inspector默认生成的极简脚本,善良的Inspectory为我们提供了一个功能那就是将极简脚本变成可执行脚本,操作如下图:

    脚本录制.png
    脚本录制.png

    现在脚本就变成了这个样子:

    # This sample code uses the Appium python client
    # pip install Appium-Python-Client
    # Then you can paste this into a file and simply run with Python
    from appium import webdriver
    caps = {}
    caps["platformName"] = "iOS"
    caps["platformVersion"] = "10.3"
    caps["deviceName"] = "iPhone 7 Plus"
    caps["app"] = "http://appium.s3.amazonaws.com/TestApp7.1.app.zip"
    caps["noReset"] = True
    driver = webdriver.remote("http://0.0.0.0:4723/wd/hub", caps)
    TouchAction(driver).tap([(167, 73)])
    TouchAction(driver).tap([(81, 300)])
    TouchAction(driver).tap([(303, 414)])
    el1 = driver.find_element_by_accessibility_id("IntegerA")
    el1.click()
    el1.send_keys("Hello")
    TouchAction(driver)
    .press({x: 198, y: 393})
    .moveTo({x: 50: y: 0})
    .release()
    TouchAction(driver)
    .press({x: 335, y: 264})
    .moveTo({x: -183: y: -3})
    .release()
    TouchAction(driver).tap([(191, 498)])
    TouchAction(driver).tap([(357, 698)])
    driver.quit()

    这样是不是就和我们写的脚本格式一样了,你学会了吗?
    在学习过程中遇到问题可以留言,互相学习,共同进步!

  • 相关阅读:
    hdu 1199 Color the Ball 离散线段树
    poj 2623 Sequence Median 堆的灵活运用
    hdu 2251 Dungeon Master bfs
    HDU 1166 敌兵布阵 线段树
    UVALive 4426 Blast the Enemy! 计算几何求重心
    UVALive 4425 Another Brick in the Wall 暴力
    UVALive 4423 String LD 暴力
    UVALive 4872 Underground Cables 最小生成树
    UVALive 4870 Roller Coaster 01背包
    UVALive 4869 Profits DP
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8465739.html
Copyright © 2020-2023  润新知