ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用appium来操作模拟器

2021-07-15 19:03:49  阅读:184  来源: 互联网

标签:appium cap app des driver element import 操作 模拟器


 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()

 

标签:appium,cap,app,des,driver,element,import,操作,模拟器
来源: https://www.cnblogs.com/yuanjunyan/p/15017011.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有