19.设备交互 Api

发布时间 2023-12-20 23:23:53作者: 想要暴富的小男孩

目录

 
  • 测试过程中模拟来电、来短信
  • 模拟网络切换
  • 运行过程中获取系统日志
  • 截图

常用的设备交互命令

  • 模拟电话、短信
  • 网络模式
  • 横竖屏切换
  • App处理
  • 录屏
  • 官方地址:http://appium.io/docs/en/about-appium/intro/

模拟电话、短信

  • 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”);

网络设置 

self.driver.set_network_connection(1)
self.driver.set_network_connection(4)
    def set_network_connection(self, connection_type: int) -> int:
        """Sets the network connection type. Android only.

        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             |
            +--------------------+------+------+---------------+

横竖屏切换

 
  • 横竖屏切换,官方暂不支持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()