Macaca 解决 driver 能找到控件, 但是用 touch ('tap') 却不进行点击的方法

Michael_Wang · January 23, 2017 · 921 hits

问题(模拟器遇到的, 还没用过真机)

有些控件, 通过 driver.element_by_id(id) 能找到, 但是 driver.element_by_id(id).touch('tap') 却不执行点击操作, 没有反应.

解决方法

通过找到的控件, 获取控件的坐标, 算出控件的中心位置坐标, 然后通过 driver.touch('tap', {'x': x, 'y': y}) 点击

def tap_element_center_by_id(value):
element = driver.element_by_id(value)
x, y = tap_element_center(element)
return x, y

def tap_element_center(element):
rect = element.rect
# logging.info('element 坐标: %s' % rect)
x = rect['x'] + rect['width']/2
y = rect['y'] + rect['height']/2
driver.touch('tap', {'x': x, 'y': y})
return x, y
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 0 条回复 时间 点赞
1Floor has been deleted
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up