2023年6月26日发(作者:)
Appium语法连接配置# coding=utf-8from appium import webdriverimport time#
连接配置#
必须desired_caps = { #
系统类型 Android|IOS 'platformName': 'Android', #
设备名称
备注:如果您使⽤的模拟器,就是模拟器中虚拟机的名称(必须) 'deviceName': '127.0.0.1:7555', #
系统版本 'platformVersion': '6.0.1', # apk包名 'appPackage': '', # apk的launcherActivity 'appActivity': 'Activity', #
⾃动授权 'autoGrantPermissions': True}#
可选 #
使⽤ unicodeKeyboard
的编码⽅式来发送字符串 'unicodeKeyboard':'True' #
将键盘给隐藏起来 'resetKeyboard':'True' #
物理机的 id 'udid':'1ae203187fc012g' #
移动浏览器的名称 'browserName':'Browser for Android' #
使⽤哪种⾃动化引擎 'automationName':'appium' #
对权限弹窗进⾏授权 "autoAcceptAlerts":'True'
连接Appiumdriver = ('127.0.0.1:4723/wd/hub', desired_caps)关闭当前窗⼝()退出脚本运⾏,关闭所有窗⼝()id定位_element_by_id('rl_home_top_search')class定位_element_by_class_name('ew')xpath定位_element_by_xpath("//utton[@text='个⼈中⼼']")Accessibility ID定位使⽤⽅法:其实,我们的核⼼是要找到元素的contentDescription属性。它就是元素的content-desc。_element_by_accessibility_id("plus").click()android uiautomator定位(返回的是⼀个list)# text定位_elements_by_android_uiautomator('new UiSelector().text("个⼈中⼼")')# class定位_elements_by_android_uiautomator('new UiSelector().className("ew")')textContains 不是_element_by_android_uiautomator('new UiSelector().textContains("中⼼")').click()正则匹配 不是_element_by_android_uiautomator('new UiSelector().textMatches(".*的课程.*")').click()上下⽂# contexts(self)
返回当前会话中的上下⽂,使⽤后可以识别H5页⾯的控件a = ts# current_context(self)
返回当前会话的当前上下⽂b = t_context# context(self)
返回当前会话的当前上下⽂。c = t滚动#
从元素origin_el滚动⾄元素destination_el,参数:origin_el, destination_(el1, el2)拖动#
将元素origin_el拖到⽬标元素destination_el,参数:orgin_el, destination__and_drop(el1, el2)点击#
模拟⼿指点击(最多五个⼿指),可设置按住时间长度(毫秒)
参数:positions, ([(100, 20), (100, 60), (100, 100)], 500)长按from _actions import TouchActionsaction1=TouchActions(driver)el = _element_by_id(" ")elx=('x')ely=('y')_and_hold(elx,ely).perform()(3)e(elx,ely).perform()滑动#
从A点滑动⾄B点,滑动时间为毫秒,参数:tart_x, start_y, end_x, end_y, duration
(90, 80, 120, 120, 1000)x = _window_size()['width']y = _window_size()['height']#
上滑(x/4,y/4,x/4,y*3/4)#
下滑(x/4,y*3/4,x/4,y/4)#
左滑(x*3/4,y/4,x/4,y/4)#
右滑(x/4,y/4,x*3/4,y/4)快速滑动#
按住A点后快速滑动⾄B点
参数:start_x, start_y, end_x, end_(20, 30, 80, 90)缩⼩操作#
在元素上执⾏模拟双指捏(element)放⼤操作(element)重置应⽤#
类似删除应⽤数据()获取当前的activityd = t_activity()显式等待from appium import webdriverfrom import WebDriverWaitWebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)"""driver:是我们操作的driver。timeout:超时时间,也就是我们找这个元素要找多久poll_frequency:间隔时间,怎么理解?就是说在超时时间内每多少秒去查询⼀次,默认情况是0.5秒⼀次ignored_exceptions:异常,就是没有找到程序抛出什么异常。在默认情况是跑出:NoSuchElementException"""#
在⼀般情况下我们只需要填写前⾯两个就⾏WebDriverWait(driver, 10,5).until(lambda driver:_element_by_id("ssss"))隐式等待#
全局等待10秒itly_wait(10)等待指定的activity#
等待指定的activity出现直到超时(秒),参数:activity, timeout, interval=1, interval为扫描间隔1秒_activity('.', 5, 1)安装l_app('c:/xxx/')启动_app()关闭_app()打开系统通知栏(仅⽀持API 18 以上的安卓系统)_notifications()text#
返回元素的⽂本值j = _element_by_name('name').text提交表单_element_by_accessibility_id('id').submit()输⼊法#
返回安卓设备可⽤的输⼊法f = ble_ime_engines#
检查设备是否有输⼊法服务活动。返回真/假。g = _ime_active()#
激活安卓设备中的指定输⼊法,设备可⽤输⼊法可以从“available_ime_engines”获取te_ime_engine('/.LatinIME')#
关闭安卓设备当前的输⼊法vate_ime_engine()#
返回当前输⼊法的包名h = _ime_engine隐藏键盘_keyboard()输⼊_element_by_id('id').send_keys('haha')发送键码#
键码对照表请⾃⾏百度,此处不展⽰了。_keycode(3)//点击Android的HOME键_keycode(27)//点击拍照键清除输⼊的内容_element_by_id('id').clear()设置元素的值_value(element=el,Val) #
设置 el
元素的值获取元素的⼤⼩(⾼和宽)k = _element_by_id('id').size获取元素的位置(左上⾓的坐标)l = _element_by_id('id').location获取元素的位置和⼤⼩(字典)m = _element_by_id('id').rect获取当前元素的截图为Base64编码的字符串img = _element_by_id('id').screenshot_as_base64截取整个屏幕_screenshot_as_file(r'E:')
执⾏JavaScript代码e_script('')获取源码o = _source
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687751626a39245.html
评论列表(0条)