app自动化——设备交互api

一、测试过程中模拟来电、来短信

  • appium可以模拟来电话,来短信功能,在app运行过程中收到短信/电话,app如何做处理的,专属的一些场景
  • 只支持原生模拟器,不支持mumu,genimotion等
driver.makeGsmCall(PHONE_NUMBER, GsmCallActions.CALL);
driver.makeGsmCall(PHONE_NUMBER, GsmCallActions.ACCEPT);
driver.makeGsmCall(PHONE_NUMBER, GsmCallActions.CANCEL);
driver.sendSMS("555-123-4567", “Appium Test”);

二、模拟网络切换

Possible values:

        +--------------------+------+------+---------------+
        | Value (Alias)      | Data | Wifi | Airplane Mode |
        +====================+======+======+===============+
        | 0 (None)           | 0    | 0    | 0             |
        +--------------------+------+------+---------------+
        | 1 (Airplane Mode)  | 0    | 0    | 1             |
        +--------------------+------+------+---------------+
        | 2 (Wifi only)      | 0    | 1    | 0             |
        +--------------------+------+------+---------------+
        | 4 (Data only)      | 1    | 0    | 0             |
        +--------------------+------+------+---------------+
        | 6 (All network on) | 1    | 1    | 0             |
        +--------------------+------+------+---------------+
self.driver.set_network_connection(1)  # 飞行模式
self.driver.set_network_connection(4)  # 数据流量和WiFi均打开

三横竖屏切换

  • 横竖屏切换,官方暂不支持python,以下是java代码。
  • 切换成横屏
    • driver.rotate(Screenorientation.LANDSCAPE)
  • 切换成竖屏
    • driver.rotate(Screenorientation.PORTRAIT)

四、运行过程中获取系统日志

self.driver.log_types
self.driver.get_log("logcat")

五、截图

  • 锁屏
    • driver.lock()
  • 截图
    • driver.get_screenshot_as_file('./photos/img.png')
  • 录屏:模拟器需要 androidAPI>27,华为不支持,只支持 8.0以上的版本
    • 开始录制:self.driver.start_recording_screen()
    • 结束录制:self.driver.stop_recording_screen()