美文网首页
Appium+Python进行iOS App自动化测试(3)第一

Appium+Python进行iOS App自动化测试(3)第一

作者: 悟饭哪 | 来源:发表于2021-03-18 14:26 被阅读0次

    书接上回

    我们已经可以使用Appium启动App了。现在我们改成使用脚本启动App,并自动点击按钮。
    做个示例,如果我要在启动页点击小姐姐头像,然后点击开始阅读,如图:


    上面的操作是用鼠标点击完成的,怎么用脚本实现呢?

    总共分5步

    • 创建python项目
    • 安装Appium插件
    • 配置Desired Capabilities,并启动app
    • 在Appium中获取元素信息
    • 通过脚本点击按钮

    创建python项目

    1. 使用pyCharm创建一个Pure Python就可以,选择一个项目目录,其他保持不变,直接点Create,如图:

    创建过程中会出现下面的框,稍等片刻就好,

    1. 在项目名novel_test上右键,选择New -> Python File,创建一个python文件,如图:

    在弹出的对话框中输入文件名,比如main.py,创建完成后,如图:

    安装Appium插件

    1. 点击pycharm下方的Terminal,会打开终端并自动处在当前项目的虚拟环境目录下,方便快捷。如图:

    1. 执行命令pip3 install Appium-Python-Client。如图说明安装成功:

    配置Desired Capabilities

    1. 需要首先引入appium库中的webdriver;
    2. 用代码进行配置,与在appium的新会话配置的内容是一样的,
    3. 使用webdriver启动app,url为启动appium展示的Host和Port。
      代码如下:
    from appium import webdriver
    
    # 配置设备及app信息
    desired_caps = dict()
    desired_caps['platformName'] = 'iOS'
    desired_caps['platformVersion'] = '14.3'
    desired_caps['deviceName'] = 'iPhone 12 Pro'
    desired_caps['app'] = 'com.xx.xx' # 此处填写你的bundle id
    
    # 启动app
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    1. 在文件中右键,选择Run 'main',执行main.py文件, 如图:

    Tips: 如果报错Message: An unknown server-side error occurred while processing the command. Original error: App with bundle identifier 'com.your.bundleid' unknown,说明你的模拟器上现在还没有安装你要启动的app,需要先打开这个app的项目代码,运行,把app安装到这个模拟器上。再次Run一下就可以了。

    在Appium中获取元素信息

    可以使用脚本启动app了,下一步就可以用脚本帮我们做事情了。
    想要使用脚本点击按钮,首先要获取按钮的信息,这时就需要打开Appium,我们需要借助Appium来获取按钮的信息,先打开这个页面New Session -> 选择之前保存的配置信息 -> Start Session,如下图:


    此时我们点击小姐姐的头像,右侧Selected Element区域会显示出这个按钮的所有属性信息,如图:

    通过脚本点击按钮

    • 小姐姐头像按钮
      我们可以获取到小姐姐头像按钮的两个属性:
      accessibility id:"img launch girl normal",
      xpath: "//XCUIElementTypeButton[@name="img launch girl normal"]"
      我们使用accessibility id来定位到这个元素,并调用并调用click(),代码如下:
    driver.find_element_by_accessibility_id('img launch girl normal').click()
    

    Tips: 也可用xpath获取元素,调用driver的find_element_by_xpath方法即可。

    • 开始阅读按钮
      点击“开始阅读”按钮,查看他的所有属性

    Appium提示不建议使用xpath定位元素,那我们可以使用name属性来定位,并调用click(),代码如下:
    driver.find_element_by_name('开始阅读').click()
    

    大功告成

    至此这个示例的脚本就全部写完了,在main.py中右键,选择Run 'main'跑一下看看吧,效果如下:


    完整代码如下:
    from appium import webdriver
    
    # 配置设备及app信息
    desired_caps = dict()
    desired_caps['platformName'] = 'iOS'
    desired_caps['platformVersion'] = '14.3'
    desired_caps['deviceName'] = 'iPhone 12 Pro'
    desired_caps['app'] = '你自己的bundle id'
    
    # 启动app
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    #点击小姐姐头像
    driver.find_element_by_accessibility_id('img launch girl normal').click()
    #点击"开始阅读"
    driver.find_element_by_name('开始阅读').click()
    
    下一篇,配置真机自动化。

    Have fun.

    相关文章

      网友评论

          本文标题:Appium+Python进行iOS App自动化测试(3)第一

          本文链接:https://www.haomeiwen.com/subject/txducltx.html