You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS控制iOS真机Safari自动化报错,Remote Automation已开启仍无效求助

解决iOS真机Safari自动化提示“Remote Automation is turned off”问题

以下是针对你环境(MacOS 11.6、iOS 16.3.1、Selenium 4.0.0-alpha-2)的具体解决方案:

1. 升级Selenium到稳定兼容版本

你当前使用的Selenium版本是2019年的测试版(4.0.0-alpha-2),完全不支持iOS 16这类新系统。必须升级到Selenium 4.8及以上稳定版本,该版本开始对iOS 15+的Safari自动化提供完善适配。

2. 配置Mac端Safari与SafariDriver权限

  • 打开Mac「系统偏好设置」→「安全性与隐私」→「隐私」→「自动化」,确保「Safari」已被允许控制电脑。
  • 开启Safari开发者模式:Safari菜单→「偏好设置」→「高级」,勾选「在菜单栏中显示“开发”菜单」;随后在顶部「开发」菜单中,确认「允许远程自动化」已勾选,同时选中「连接到[你的iPhone名称]」选项。

3. 重置iOS设备的信任与Remote Automation设置

  • 重新插拔iOS设备,在设备上确认「信任此电脑」,Mac端也同步确认信任。
  • 进入iOS「设置>Safari>高级」,先关闭再重新打开「Remote Automation」开关,重启Safari确保设置生效。

4. 修改代码指定设备UDID

老版本SafariOptions无法自动识别新iOS设备,需手动指定UDID:

  1. 连接设备到Mac,终端执行idevice_id -l获取设备UDID。
  2. 更新代码配置:
public class IOSWebView {
    public static RemoteWebDriver getDriver() {
        SafariOptions safariOptions = new SafariOptions();
        safariOptions.setCapability("platformName", "iOS");
        // 替换为你的设备UDID
        safariOptions.setCapability("safari:deviceUDID", "your-device-udid-here");
        return new SafariDriver(safariOptions);
    }

    public static void main(String[] args) {
        RemoteWebDriver driver = getDriver();
        driver.get("https://www.qq.com");
        System.out.println(driver.getCurrentUrl());
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

5. 重启SafariDriver服务

终端执行以下命令清除缓存并重启服务:

sudo pkill safaridriver
safaridriver --enable

内容的提问来源于stack exchange,提问作者user21249663

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 12:05:33