用appium来操作模拟器
2024-09-08 18:58:50
1 import time
2 from appium import webdriver
3 from selenium.webdriver.common.by import By
4 from selenium.webdriver.support.wait import WebDriverWait
5 from selenium.webdriver.support import expected_conditions as Ec
6
7 # 初始化app的配置信息
8
9 des_cap = dict() # 定义字典参数
10 des_cap["platformName"] = "android" # 表示的是android 或者IOS系统
11 des_cap["platformVersion"] = "6.0.1" # 表示的是平台系统的版本号
12 des_cap["deviceName"] = "****" # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)
13 des_cap["appPackage"] = "com.android.settings" # 表示的是app的包名
14 des_cap["appActivity"] = ".Settings" # 表示的是app的界面名
15
16 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des_cap)
17
18 # 安装app
19 # driver.install_app(r'F:\安装包\mumu模拟器\app自动化工具集合\apk\bainianaolaitemai_115.apk')
20 # 卸载app
21 # driver.remove_app("com.em.mobile")
22
23 driver.find_element('xpath', "//*[@text='更多']").click()
24 # time.sleep(2)
25 # 显示等待,不一定要等待7秒,找到就进行
26 element= WebDriverWait(driver,7).until(Ec.presence_of_element_located((By.XPATH,"//*[@text='开启']")))
27 element.click()
28 # driver.find_element('xpath',"//*[@text='关闭']").click()
29 # driver.find_element(By.XPATH,"//*[@text='开启']").click()
30 # 这是开启跟关闭飞行模式
31
32 time.sleep(3)
33 driver.quit()
滚动操作
1 """
2 swipe滑动事件
3 driver.swipe(startx,starty,endx,endy,duration=None)
4 duration用来降低滑屏的速度及惯性,单位是ms
5 """
6 import time
7 from appium import webdriver
8 from selenium.webdriver.common.by import By
9 from selenium.webdriver.support.wait import WebDriverWait
10 from selenium.webdriver.support import expected_conditions as Ec
11
12 # 初始化app的配置信息
13
14 des_cap = dict() # 定义字典参数
15 des_cap["platformName"] = "android" # 表示的是android 或者IOS系统
16 des_cap["platformVersion"] = "6.0.1" # 表示的是平台系统的版本号
17 des_cap["deviceName"] = "****" # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)
18 des_cap["appPackage"] = "com.android.settings" # 表示的是app的包名
19 des_cap["appActivity"] = ".Settings" # 表示的是app的界面名
20
21 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des_cap)
22
23
24 # 显示等待封装
25 # until "调用驱动程序提供的方法作为参数,直到返回值不为False"
26 def get_element(driver, element): # element 表示的元素定位的值
27 wait = WebDriverWait(driver, 10, 1)
28 element = wait.until(lambda x: x.find_element(element[0], element[1]))
29 return element
30
31
32 # 电池 按钮
33 save_btn = By.XPATH, "//*[@text='应用']"
34 save_element = get_element(driver, save_btn)
35
36 # 蓝牙 按钮
37 lanya_btn = By.XPATH, "//*[@text='蓝牙']"
38 lanya_element = get_element(driver, lanya_btn)
39
40 # save_element = WebDriverWait(driver,10,1).until(lambda x:x.find_element(By.XPATH,"//*[@text='应用']"))
41 # lanya_element = WebDriverWait(driver,10,1).until(lambda x:x.find_element(By.XPATH,"//*[@text='蓝牙']"))
42
43 # 通过scroll来进行滑动操作
44 driver.scroll(save_element, lanya_element)
45
46 time.sleep(5)
47 driver.quit()
二:简洁
1 def get_element(driver,element):
2 wait = WebDriverWait(driver,10,1)
3 element = wait.until(lambda x: x.find_element(element[0],element[1]))
4 return element
5
6
7
8
9 save_btn =By.XPATH,"//*[@text='应用']"
10 save_element =get_element(driver,save_btn)
11
12
13 lan_tn = By.XPATH,"//*[@text='蓝牙']"
14 lambda_element = get_element(driver,lan_tn)
15
16
17
18
19 driver.scroll(save_element,lambda_element)
设置滚到这里选择开发者选项,并点击第一个text是关闭的
1 import time
2 from appium import webdriver
3 from selenium.webdriver.common.by import By
4 from selenium.webdriver.support.wait import WebDriverWait
5
6 # 初始化app的配置信息
7
8 des_cap = dict() # 定义字典参数
9 des_cap["platformName"] = "android" # 表示的是android 或者IOS系统
10 des_cap["platformVersion"] = "6.0.1" # 表示的是平台系统的版本号
11 des_cap["deviceName"] = "****" # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)
12 des_cap["appPackage"] = "com.android.settings" # 表示的是app的包名
13 des_cap["appActivity"] = ".Settings" # 表示的是app的界面名
14
15 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des_cap)
16
17
18 # 封装滑屏操作方法
19 def execute_swipe(driver, fx, count=1):
20 w = driver.get_window_size()["width"] # 获取手机屏幕的宽度
21 h = driver.get_window_size()["height"] # 获取手机屏幕的高度
22 # w=1080 h=1920
23 if fx == "top": # 往上滑
24 zb = (w / 2, h * 0.9, w / 2, h * 0.1)
25 elif fx == "down": # 往下滑
26 zb = (w / 2, h * 0.1, w / 2, h * 0.9)
27 elif fx == "left": # 往左滑
28 zb = (w * 0.9, h / 2, w * 0.1, h / 2)
29 else: # 往右滑
30 zb = (w * 0.1, h / 2, w * 0.9, h / 2)
31 for i in range(count):
32 driver.swipe(*zb, duration=1200)
33 time.sleep(1)
34
35
36 # 往上滑三次
37 execute_swipe(driver, 'top', count=3)
38
39 # 找到开发者模式
40 toast_btn = By.XPATH, "//*[contains(@text,'开发者选项')]"
41 driver.find_element(*toast_btn).click()
42 time.sleep(2)
43 # 点击弹框的关闭(其实就是定位元素)
44 t1 = By.XPATH, "//*[contains(@text,'关闭')]"
45 driver.find_element(*t1).click()
46
47 driver.quit()
最新文章
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
- PHP生成日历数组,减少分页
- 编程模式之装饰模式(Decorator)
- npm ERR publish 403,nodejs发布包流程
- oracle 多表查询
- 使用MFC读写Excel
- altium designer14的Import wizard 为空的解决方法
- poj3280(区间dp)
- maven私服nexus搭建(windows)
- Linux常用命令之文件处理命令
- python函数知识点(详解匿名函数)
- Python之爬虫的理解
- APB协议
- 解决IE9下交通银行网上银行无法输入密码的问题
- Java8函数式编程探秘
- solr 请求参数过长报错,Solr配置maxBooleanClauses属性不生效原因分析
- Bagging和Boosting的区别
- SVC(STM32)
- TJU Problem 1065 Factorial
- Socket 编程之 TCP 实现