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

Michael_Wang · 2017年01月23日 · 1825 次阅读

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

有些控件, 通过 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 条回复 时间 点赞
1楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册