关于appium 无法获取popwindow悬浮窗

最近在写APP的UI自动化测试,就有碰到popwindow悬浮窗里面的元素定位不的问题,定位元素在图片中的像素位置,直接点击,顺利完成,直接上代码,希望帮助被这个问题困惑到的朋友

# 方法二:使用 adb 命令获取 DPI
    result = subprocess.run(["adb", "shell", "wm", "density"], capture_output=True, text=True)
    density_output = result.stdout.strip()
    dpi = int(density_output.split()[-1])
    print(f'设备 DPI: {dpi}')


    # 定义像素到 dp 的转换函数
    def px_to_dp(px, dpi):
        return px / (dpi / 160)

    # 定义 dp 到像素的转换函数
    def dp_to_px(dp, dpi):
        return dp * (dpi / 160)

    # 给定的像素坐标
    px_x = 1535
    px_y = 1007

    # 将像素坐标转换为 dp 坐标
    dp_x = px_to_dp(px_x, dpi)
    dp_y = px_to_dp(px_y, dpi)
    print(f'元素的 dp 坐标: ({dp_x:.2f}, {dp_y:.2f})')

    # 将 dp 坐标转换回像素坐标
    px = dp_to_px(dp_x, dpi)
    py = dp_to_px(dp_y, dpi)
    print(f'元素的像素坐标: ({int(px)}, {int(py)})')

    # 发送触摸事件
    subprocess.run(["adb", "shell", "input", "tap", str(int(px)), str(int(py))])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值