webdriver库里的常用 API

本文详细介绍了WebDriver库在appium-python-client中的常用API,包括操作应用、文件传输、UIAutomator的使用、元素定位、事件属性、等待操作以及手势操作。此外,还探讨了UIAutomator的基本介绍、基本使用和使用体验,以及在Android设备上的手势操作如滑动、拖拽等。
摘要由CSDN通过智能技术生成

1、webdriver 库里的常用 API

一、appium-python-client 中 webdriver 库里的常用 API
  • 获取当前应用的包名和启动名

    driver.current_package   # 获取当前应用包名
    driver.current_activity  # 获取当前界面启动名
    
  • 关闭当前 APP

    driver.close_app() # 这是一个方法,不是属性,关闭前置代码中打开的 APP
    
  • 启动其它的 APP

    driver.start_activity( "包名","启动名" )  # 可以在当前 APP 内再次打开另外一个 APP
    
  • 退出( 关闭 ) 当前 APP

    driver.quit()  # 可以关闭当前次的会话,失去与手机之间的连接
    
  • 安装卸载 APP

    driver.install_app( "包所在路径" )  # 安装对应的 APK 包
    driver.remove_app( "包名" )  # 卸载之前确保该应用已经安装在手机上
    
  • 判断是否安装了某个 APP

    driver.is_app_installed( "包名" ) # 传入一个包名,返回布尔值,判断当前应用是否被安装
    
  • 在后台运行 APP

    driver.background_app( 时间 ) # 接收一个时间参数,单位是毫秒,让应用置于后台运行一定的时间
    
  • 查询手机的时间

    driver.device_time # 这是一个查询当前设备时间的属性
    
  • 获取当前设备的屏幕分辨率

    driver.get_window_size()  # 返回一个字典,包含了设备的宽度和高度
    
  • 发送键到设备

    driver.keyevent( 码值 ) # 可以发送一个数值代表具体的手机操作,例如 4 就代表点击返回键
    
  • 进行手机截图

    driver.get_screenshot_as_file( "./1.png" )  # 将当前手机所在界面进行截图,传入的是希望的最终文件路径
    
  • 获取当前屏幕内元素结构

    driver.page_source  # 这是一个属性,可以返回当前手机界面中对应元素的 xml 文档格式信息
    
  • 操作手机通知栏【了解】

    driver.open_notifications()
    
  • 获取手机当前网络【了解】

    print(driver.network_connection) # 这是一个属性,返回一个数字,表示当前设备连接的网络
    
  • 设置手机网络【了解】

    driver.set_network_connection(1) # 接收的是一个数字类型,表示不同的网络类型状态
    
二、上传文件到手机

我们之前在 adb 操作中可以通过 adb push 或者 adb pull 命令轻松的实现文件在PC与手机设备之间的传输操作,但是有了在 appium 的 webdriver 库中不能直接对文件整体进行操作,它允许操作是文件里具体的数据内容。同时手机对于数据的编码有自已的要求,所以如果我们想要将PC机上的一个文件最终上传到手机里,需要做的事情是先拿到该文件中的数据源,然后进行一系统的编码、解码操作,最终将满足手机支持的数据格式以字符的形式写入到手机对应的存储位置

# -*- coding=utf-8 -*-

import base64

# 导入python需要的 webdriver 库
from appium import webdriver

# 定义一个空字典来存放具体的配置参数
desired_caps = dict()

# 书写具体的参数
desired_caps["platformName"] = "android"  # 当前的系统平台名称
desired_caps["platformVersion"] = "5.1.1"  # 当前连接设备的 android 版本
desired_caps["deviceName"] = "emulator-5554" # 当前已连接设备的名称
desired_caps["appPackage"] = "com.android.settings"  # 被测试 APP 的包名
desired_caps["appActivity"] = ".Settings" # 被测试 APP 的启动名

# 获取对应的连接
driver = webdriver.Remote( "http://localhost:4723/wd/hub",desired_caps )

# 读取2.txt里的内容
with open( "2.txt","r",encoding="utf8" ) as f1:
    original_data = f1.read()

# 将从文件中读取出来的原始数据进行编码,编码成 utf8 [ 因为手机支持是经过 base64规则加密之后的utf8 ]
utf8_data = original_data.encode("utf8")

# 将上述编码成 utf8 规则的字符进行 base64 加密处理
base64_utf8_data = base64.b64encode( utf8_data )

# 将数据处理成 base64 加密后的utf8 编码之后还需要处理成 str 的格式才能写入手机
str_data = str( base64_utf8_data,"utf8" )

# 将具体的内容写入到手机具体的目录当中
driver.push_file( "./sdcard/000.txt",str_data )
三、拉取手机文件到本地

拉取文件与上传文件思路完全一致,不一样的就是具体的代码书写,一个是从PC到手机,一个是从手机到 PC

# -*- coding=utf-8 -*-

import base64

# 导入python需要的 webdriver 库
from appium import webdriver

# 定义一个空字典来存放具体的配置参数
desired_caps = dict()

# 书写具体的参数
desired_caps["platformName"] = "android"  # 当前的系统平台名称
desired_caps["platformVersion"] = "5.1.1"  # 当前连接设备的 android 版本
desired_caps["deviceName"] = "emulator-5554" # 当前已连接设备的名称
desired_caps["appPackage"] = "com.android.setting
  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值