当前位置:   article > 正文

Android Appium 学习超详细示例(附详细注释)_appium 怎么注释

appium 怎么注释
from appium import webdriver
import time
# adb shell dumpsys window windows | findstr mFocusedApp #查看应用名和应用界面名字
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support.wait import WebDriverWait

desired_caps = dict()
#平台的名字'Android',大小写无所谓,不能乱写
desired_caps['platformName'] = 'Android'

#手机中 设置 -> 关于手机 -> 安卓的版本
desired_caps['platformVersion'] = '7'

#设备的名字,对于安卓来说可以随便写,IOS要和设备一致
desired_caps['deviceName'] = '127.0.0.1:62001'

#要打开的app名字 'com.miaodong.autoaction'
desired_caps['appPackage'] = 'com.android.settings'
#app的界面 '.HomeActivity'
desired_caps['appActivity'] = '.Settings'

#连接 访问appium服务
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

#appium会将我们的driver对象调用的方法转换成post请求,提交给appium服务器

#appium 通过接受到的post请求发送给手机再由手机执行

#获取包名和界面名
# print(driver.current_package)
# print(driver.current_activity)

# #延时两秒
# time.sleep(2)
#
# #在脚本内启动其他App
# #打开"上面那个"应用程序,等待三秒后跳转到"设置"应用程序
# driver.start_activity('com.android.settings','.Settings')

# #判断应用是否安装
# if driver.is_app_installed('com.miaodong.autoaction'):
#     #如果安装,就要卸载
#     driver.remove_app('com.miaodong.autoaction')
# #如果没有安装,就要安装 @par 安装包的本地路径
# else:
#     driver.install_app(r"E:\夜神模拟器\Nox\bin\1test.apk")

# 通过id定位 放大镜按钮,点击 返回按钮这个元素
# search_btn = driver.find_element_by_id("com.android.settings:id/search")
# search_btn.click()
# #这个页面跳转是需要时间的,但是代码执行是很快的,所以要适当添加延时
# time.sleep(1)
#
# # 通过class定位 输入框,输入hello
# driver.find_element_by_class_name("android.widget.EditText").send_keys("hello")
# #driver.find_element_by_id("android:id/search_src_text").send_keys("hello")
# # 定位返回按钮,"//*[@]" content-desc
# driver.find_element_by_xpath("//*[@content-desc='收起']").click()
#
# time.sleep(3)

#定位一组元素
#titles = driver.find_elements_by_id("android:id/title")
# print(titles)
# print(len(titles))
# for title in titles:
#     print(title.text)

#元素等待:可能由于一些原因,我们想找的元素并没有立刻出来,此时如果直接定位可能会报错
#如:网速问题,服务器处理请求问题,电脑配置问题

#隐式等待 在几秒钟内,点击返回,在等待过程中,只要哪一秒被点击就会立刻执行
#这就是和time.sleep的区别
# driver.implicitly_wait(5)
# driver.find_element_by_xpath("//*[@content-desc='收起']").click()

#显式等待 隐式等待是全局的,显示等待只针对lambda下面的
#显式等待 显式dengd2为
#显示等待可以对单个元素进行设置,隐式等待只能全局
#使用sleep也可以,但是会造成不必要的浪费
# wait = WebDriverWait(driver,5,1) # 在5秒钟内,每一秒调用下面的方法
# back_btn = wait.until(lambda x: x.find_element_by_xpath("//*[@content-desc='收起']"))
# back_btn.click()

# titles2 = driver.find_elements_by_class_name("android.widget.TextView");
# print(titles2)
# print(len(titles2))
# for title in titles2:
#     print(title.text)

# 通过xpath,获取所有包含"设"的元素
# tmps = driver.find_elements_by_xpath("//*[contains(@text,'设')]")
# for tmp in tmps:
#     print(tmp.text)

# 模拟home键 将应用置于后台 一定时间再回到前台,模拟热启动
# 热启动:表示进入后台再回到前台,关机再开这种切断电源的行为可以叫做“冷启动”
#driver.background_app(3)

#输入中文
# driver.find_element_by_id("com.android.settings:id/search").click()
# time.sleep(1)
# driver.find_element_by_id("android:id/search_src_text").send_keys("阿维")

#获取元素的位置和大小
# test = driver.find_element_by_id("com.android.settings:id/search")
# print(test.location)
# print(test.size)

#获取元素的属性值
# test2 = driver.find_elements_by_id("android:id/title")
# for i in test2:
#     #print(i.get_attribute("class"))
#     print(i.get_attribute("text"))

#滑动(x1,y1,x2,y2,time)
# driver.swipe(100,1000,100,100)
#driver.swipe(100,1000,100,100,500)

#scroll 滑动事件 从一个元素滑到另一个元素,直到页面自动停止
#不能设置滑动时间,惯性很大
# t1 = driver.find_element_by_xpath("//*[@text='WLAN']")
# t2 = driver.find_element_by_xpath("//*[@text='声音']")
#driver.scroll(t2,t1)

#drag_and_drop 从一个元素滑到另一个元素,直到第二个元素代替第一个元素原本屏幕上的位置。
#不能设置滑动时间,没有惯性
#driver.drag_and_drop(t2,t1)

#轻敲
# #找到要点击的元素
# ele = driver.find_element_by_xpath("//*[@text='显示']")
# #ta = TouchAction(driver).tap(ele)
# ta = TouchAction(driver).tap(x=300,y=700)   #指定x,y
# #ta = TouchAction(driver).tap(None,300,700) #最后一个参数是点击的次数
# ta.perform()

#按下和抬起
# TouchAction(driver).press(None,300,700).perform()
# TouchAction(driver).press(None,300,700).release().perform()

#手指的等待(长按)
# TouchAction(driver).tap(driver.find_element_by_xpath("//*[@text='WLAN']")).perform()
# time.sleep(2)
# TouchAction(driver).press(driver.find_element_by_xpath("//*[@text='WiredSSID']")).wait(2000).perform()

#长按
# TouchAction(driver).tap(driver.find_element_by_xpath("//*[@text='WLAN']")).perform()
# TouchAction(driver).long_press(driver.find_element_by_xpath("//*[@text='WiredSSID']"),duration=2000).perform()

#移动
# TouchAction(driver).press(None,183,600).move_to(None,449,600)\
#      .move_to(None,718,600).move_to(None,449,800)\
#      .move_to(None,183,1000).move_to(None,449,1000)\
#      .move_to(None,718,1000).release().perform()

# (TouchAction(driver).press(None,183,600).move_to(None,449,600)
#      .move_to(None,718,600).move_to(None,449,800)
#      .move_to(None,183,1000).move_to(None,449,1000)
#      .move_to(None,718,1000).release().perform())

#获取当前设备的分辨率
#print(driver.get_window_size())

#截图
#driver.get_screenshot_as_file("test.png")

#获取手机网络
#print(driver.network_connection())
#设置为飞行模式
#driver.set_network_connection(1)

#发送键到设备
#点击三次音量加,再点击返回,再点击两次音量减
# for i in range(0,3):
#     driver.press_keycode(24)
# driver.press_keycode(2)
# driver.press_keycode(25)
# driver.press_keycode(25)

#操作通知栏
driver.open_notifications()
#按下返回键
driver.press_keycode(4)

time.sleep(5)
# 关闭驱动对象,同时关闭所有关联的app
driver.quit()

# 关闭当前操作的app,不会关闭驱动对象
# driver.close_app()
# print(driver.current_package)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/382383
推荐阅读
相关标签
  

闽ICP备14008679号