本文共 3301 字,大约阅读时间需要 11 分钟。
from appium import webdriverimport timefrom selenium.webdriver.support.wait import WebDriverWaitserver = 'http://127.0.0.1:4723/wd/hub'# 连接设备参数desired_caps = { "deviceName": "192.168.3.6:5566", "platformVersion": "9", "platformName": "Android", "appPackage": "com.tencent.mm", "appActivity": "com.tencent.mm.ui.LauncherUI", "unicodeKeyboard": "True", "resetKeyboard": "True", "noReset": "True"}# desired_caps常用参数:# platformName 平台名称:iOS,Android,FirefoxOS# platformVersion 设备系统版本号# deviceName 设备号 IOS:instruments -s devices, Android: adb devices# app 安装文件路径:/abs/path/to/my.apk or http://myapp.com/app# appActivity 启动的Activity# appPackage 启动的包# unicodeKeyboard unicode设置(允许中文输入)# resetKeyboard 键盘设置(允许中文输入)# noReset 是否重置手机appium setting# 远程遥控b = webdriver.Remote(server, desired_caps)
b.close_app()
b.quit()
b.start_activity("com.tencent.mobileqq","com.tencent.mobileqq.activity.SplashActivity")
b.install_app(本地PC的apk_path)
b.remove_app(app包名)
flag = b.is_app_installed("com.tencent.mobileqq")
#发送文件到手机:# import base64# data = str(base64.b64encode("push 1234567".encode('utf-8')), 'utf-8')# b.push_file(r"/sdcard/test.txt",data)# '''# 参数:# path:手机设备上的路径(如:/sdcard/a.txt)# data:文件内数据,要求base64编码# Python3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,需要先转码;生成的数据为byte类型,需要将byte转换回去。# '''#从手机端获取文件# phone_data = b.pull_file("/sdcard/test.txt")# print(str(base64.b64decode(phone_data), 'utf-8')) #
print(b.page_source)
# 1.强制等待# time.sleep(10)# 2.隐性等待# 等待元素加载出来后就可以进行下一步。# 缺点是,元素加载出来,但页面未加载完也会进行下一步b.implicitly_wait(10)# 3.显性等待# 这里表示等待10s,每隔1s去检查一次元素是否出现,出现了就执行下一步,直到30s结束后还没有出现就会抛出异常。#等待元素出现# WebDriverWait(b,timeout=10,poll_frequency=1).until(lambda x: x.find_element_by_android_uiautomator('new UiSelector().text("通讯录")'))#等待元素消失# WebDriverWait(b,timeout=10,poll_frequency=1).until_not(lambda x: x.find_element_by_android_uiautomator('new UiSelector().text("通讯录effdf")'))
# 1.点击# ele = WebDriverWait(b,timeout=10,poll_frequency=1).until(lambda x: x.find_element_by_android_uiautomator('new UiSelector().text("通讯录")'))# ele.click()# 2.输入文本# ele2 = b.find_element_by_android_uiautomator('new UiSelector().text("搜索")')# ele2.click()# ele2.send_keys("丫头")# 3.清空# ele2.clear()# ele2.send_keys("丫头")# 4.坐标划动# phone_size = driver.get_window_size() #分辨率# y = b.get_window_size()['height']# x = b.get_window_size()['width']# b.swipe(x * 0.5, y * 0.25, x * 0.5, y * 0.75, 500) # 下滑# time.sleep(3)# b.swipe(x * 0.75, y * 0.5, x * 0.25, y * 0.5, 500) # 左滑# time.sleep(3)# b.swipe(x * 0.25, y * 0.5, x * 0.75, y * 0.5, 500) # 右滑# time.sleep(3)# b.swipe(x * 0.5, y * 0.25, x * 0.5, 0, 10000) # 上滑# 5.获取文本# print(ele.text)# 6.获取元素属性# resourceId = ele.get_attribute("resourceId")# 7.元素划动# start_ele = b.find_element_by_android_uiautomator('new UiSelector().textContains("丫头")')# end_ele = b.find_element_by_android_uiautomator('new UiSelector().textContains("SDS")')# b.scroll(end_ele, start_ele)# 8.拖动元素# b.drag_and_drop(start_ele, end_ele)# 9.应用置于后台# b.background_app(10)# 10.获取手机时间# local_time = b.device_time# print(local_time)# 11.打开通知栏# b.open_notifications()# 12.点击home键# b.keyevent(3)# 13.获取手机当前网络# print(b.network_connection)# 14.屏幕截图# b.get_screenshot_as_file("air.png")
转载地址:http://otmji.baihongyu.com/