Python uiautomator2按住图标滑动 滑道最后不要放开等服务器返回坐标,然后在滑动到坐标位置
可以参考下
https://www.jb51.net/article/205942.htm
定位到滑块按钮,然后调用以下方法拖动滑块:
# 从sx,sy坐标拖拽至ex,ey坐标
d.drag(sx, sy, ex, ey)
这个应该都没有问题,就是要注意在这个过程中,需要获取服务返回的坐标数据,此时你可以在拖动滑块过程中去判断下是否获取到服务返回的坐标,有的话就滑动到指定位置,没有的话就继续滑动即可
拖拽图标示例代码:
import time
import uiautomator2 as u2
# 连接设备
d = u2.connect('your_device_serial_number')
# 获取图标
icon = d(resourceId='com.xxx.xxx:id/icon')
# 长按并滑动图标
icon_long_click = icon.long_click()
# 长按之后的操作不会阻塞主线程,因此需要睡眠一段时间,确保拖拽完成
time.sleep(2)
# 获取最终的位置坐标
end_pos = d.get_last_match()['visibleBounds']
# 修改坐标为中心位置坐标
end_pos['right'] = end_pos['left'] + (end_pos['right'] - end_pos['left']) / 2
end_pos['bottom'] = end_pos['top'] + (end_pos['bottom'] - end_pos['top']) / 2
# 滑动到修改后的坐标
icon.drag(end_pos['right'], end_pos['bottom'])
要在 Python 中使用 uiautomator2 按住图标并滑动,等待服务器返回坐标后再滑动到指定位置,可以使用以下代码示例:
python
Copy code
import uiautomator2 as u2
import time
d = u2.connect('设备序列号')
icon = d(resourceId="com.example.app:id/icon")
icon.long_click()
time.sleep(2) # 等待服务器返回坐标,时间根据实际情况调整
d.swipe(start_x, start_y, end_x, end_y, duration=0.5) # 替换为实际的起始坐标和结束坐标
icon.drag_to(end_x, end_y, duration=0.5) # 滑动到坐标位置
在上述代码中,首先使用 u2.connect 方法连接到设备,将 '设备序列号' 替换为实际的设备序列号。然后通过 d 对象找到图标元素,使用 long_click 方法按住图标。接着等待一段时间,以等待服务器返回坐标,这个时间根据实际情况进行调整。最后使用 swipe 方法实现滑动操作,将 start_x、start_y、end_x、end_y 替换为实际的起始坐标和结束坐标。最后使用 drag_to 方法将图标滑动到坐标位置。你可以根据实际需求进行其他操作。
可以使用uiautomator2库中的 drag
方法来实现按住图标滑动的功能。具体实现步骤如下:
uiautomator2
库中的 bounds
属性来获取控件的坐标信息。例如,假设要滑动的图标的 resource-id
为 com.example.app:id/icon
,可以使用以下代码获取该图标的坐标信息:drag
方法按住图标并滑动。该方法的参数为起始点坐标和结束点坐标。例如,假设要按住图标并向下滑动,可以使用以下代码:wait
方法等待指定时间。例如,假设需要等待5秒钟,可以使用以下代码:drag
方法将图标滑动到指定的坐标位置。例如,假设服务器返回的坐标位置为 (x, y)
,可以使用以下代码将图标滑动到该坐标位置: