扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
说明:Tensorflow平台有太多的函数,需要及时查看每个函数里的有哪些参数、各种参数的使用说明。在jupyter notebook中有最常用的快捷键可以打开提示:
10年积累的网站设计制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有平阴免费网站建设让你可以放心的选择与我们合作。
快捷键:在函数括号内, 按着shift , 双击tap !
先看看tap是什么,定义在了TouchAction中,代码如下
def tap(self, element=None, x=None, y=None, count=1):
"""Perform a tap action on the element
:Args:
- element - the element to tap
- x - (optional) x coordinate to tap, relative to the top left corner of the element.
- y - (optional) y coordinate. If y is used, x must also be set, and vice versa
:Usage:
"""
opts = self._get_opts(element, x, y)
opts['count'] = count
self._add_action('tap', opts)
return self
实际的使用中根据这个来自定义一些方法来用,比如你这个点击屏幕,可以定义如下,后面传递参数即可
def tap_screen(self, x, y):
self.action.tap(None, x, y).perform()
另外我这边是计算中心坐标是除以2,是没问题的。比如你这个就是center_x = w / 2,center_y = y / 2,后面直接调用tap_screen(center_x,center_y)就行了
实现了一个最简单的输入密码,enter进入的简单键盘操作登录过程,具体代码如下:
· 鼠标点击
有m.click(x, y, button, n) -- 点击,想x,y坐标,button:-1表示左键,-2表示右键,n:默认1次,2双击
m.move(x, y) -- 鼠标移动
m.screen_size() -- 获取屏幕尺寸
· 键盘操作
k.type_string('abcdefg') --输入内容
k.press_key('a') --按a键
k.release_key('a') --松开a键
k.tap_key('a') --点击a键
k.tap_key('a', n=2, interval=5) --点击a键2次,每次间隔5秒
k.tap_key(k.function_keys[5]) --功能键F5
k.press_keys([k.alt_key, 'a']) --组合按键
你可以在开发者选项中打开指针位置,这样就很容易去获取界面上各个图标的具体位置了。建议是先获取手机分辨率,然后根据分辨率去计算要点击的位置。
点击操作driver有click()方法,如果没有className或者resource-id,使用swipe方法,参考如下:
##获取手机屏幕分辨率
x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
x = int(x*0.1)
y = int(y*0.1)
self.driver.swipe(x, y, x, y,1)
#这里的xy就是你UI界面上图标对应的坐标,时间非常短,1毫秒,模拟点击了。
如果别人有更好的方法,你就用别人的,仅供参考。
当然tap也可以,doc如下:
"""Taps on an particular place with up to five fingers, holding
for a
certain time
:Args:
- positions - an array of tuples representing the x/y
coordinates of
the fingers to tap. Length can be up to five.
- duration - (optional) length of time to tap, in ms
:Usage:
driver.tap([(100, 20), (100, 60), (100, 100)], 500)
"""
在使用Python3做自动化测试的过程中可能会遇到这种情况:assert函数不加try except 就可以正常在报告里体现用例不通过,加上了try except 反而变成了通过。
这是因为在使用try except 时,捕获了assert函数产生的AssertionError异常,导致异常没有上抛,这时只需要在后面加上raise就可以再次把它抛出。
所以如果需要上报错误,就需要在try except语句后添加raise来上报错误,否则即使有错误用例也会直接通过
点击某个元素时通常用click方法,但是当所点击的元素UI区域太小时,会点击无效,造成以为视图中没有当前元素的错觉。
所以当前所点击的元素UI区域较小时,可以选择采用 tap 点击即轻触操作
当前所点击的元素UI区域较大时,可以选择采用click 点击或者 tap轻触操作
找对应的元素最好按照上图中参数的顺序尝试,优先选择通过accessibility id寻找元素,
如果元素没有“accessibility id”, 在通过“-ios class chain” 寻找元素
如果“ios class chain” 不容易找到元素,可尝试通过“-ios predicate string” 寻找元素
亲测"xpath"不是特别好用
正常情况下,通过“accessibility id” 或者“-ios class chain” 就能找到对应的元素
想要获取元素属性值,可通过get_attribute方法获取,其中的参数需要参考当前Inspector显示出的attribute,没有显示的则无法获取其属性值
例如:通过当前Inspector显示出的attribute,可以获取value属性值、type属性值、width属性值等等
有些页面数据复杂,点击某个元素后,接口请求较慢,此时延迟参数应设置大一点,防止页面未完全展示,导致后续点击操作报错
如:
有时点击某个元素后,不涉及到请求接口或者页面非常简单,此时延迟参数可设置小一点,避免较长等待
参考pep8规范:
一 代码编排
1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流