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

iOS端使用Appium启动Safari后闪退,报ECONNREFUSED错误求助

解决Appium+Capybara启动Safari后跳转0.0.0.0并报错ECONNREFUSED的问题

我之前在Appium 1.x搭配Xcode 9.x的环境里也踩过类似的WebView连接坑,结合你的报错信息和环境配置,给你几个针对性的排查和解决方向:

1. 先确认Web检查器的授权与开启状态

报错里的connect ECONNREFUSED ::1:27753说明Appium连不上Safari的WebInspector端口(27753是WebInspector的动态端口),先检查基础配置:

  • 打开iOS模拟器的设置 > Safari > 高级,确保「Web检查器」开关是打开的;
  • 打开Xcode,进入Xcode > Preferences > Locations,确认「Command Line Tools」选择的是Xcode 9.3(避免工具版本不匹配);
  • 完全关闭Safari和模拟器,再重启Appium服务,有时候残留进程会占用端口导致连接失败。

2. 修正Capybara的Appium配置参数

你的spec_helper.rb大概率缺少关键的自动化配置项,Appium 1.7+对iOS 10+必须使用XCUITest驱动,而且需要明确指定WebView相关参数。这里给你一个修正后的配置示例:

require 'bundler'
Bundler.require
require 'capybara/dsl'
require 'appium_capybara'

Capybara.register_driver(:appium) do |app|
  capabilities = {
    platformName: 'iOS',
    platformVersion: '11.3', # Xcode9.3默认支持的iOS版本是11.3,要和你的模拟器版本匹配
    deviceName: 'iPhone 8', # 替换成你实际使用的模拟器名称
    browserName: 'Safari',
    automationName: 'XCUITest', # 必须指定,Appium1.7+不再支持UIAutomation
    autoWebview: true, # 自动切换到WebView上下文,避免手动切换的麻烦
    newCommandTimeout: 30, # 延长超时时间,给WebInspector足够的连接时间
    showXcodeLog: true # 可选,开启后可以查看Xcode的日志,方便排查问题
  }
  Appium::Capybara::Driver.new(app, caps: capabilities)
end

Capybara.default_driver = :appium
include Capybara::DSL

重点说明:

  • automationName: 'XCUITest'是核心,Appium 1.7+对iOS 10及以上版本只能用XCUITest驱动,不设置的话会默认用废弃的UIAutomation,导致WebView连接失败;
  • autoWebview: true会自动帮你切换到Safari的WebView上下文,不用手动调用switch_to.context;
  • platformVersion要和你模拟器的iOS版本完全匹配,Xcode9.3对应的iOS版本是11.3,别写错。

3. 强制Appium使用IPv4连接

报错里的::1是IPv6的本地回环地址,有时候Appium会优先用IPv6连接WebInspector,但Safari的WebInspector可能只监听IPv4端口。可以尝试启动Appium时强制绑定IPv4:

appium --address 0.0.0.0

另外,也可以用lsof命令检查27753端口是否被其他进程占用:

lsof -i :27753

如果有结果,用kill -9 <进程ID>杀掉对应的进程,再重启测试。

4. 兼容性调整(备选方案)

Appium 1.7.2和Xcode9.3之间存在一些小的兼容性bug,如果前面的方法都没用,可以尝试:

  • 升级Appium到1.8.2(这个版本和Xcode9.3兼容性较好);
  • 或者降级到Appium 1.7.1,部分用户反馈这个版本解决了WebInspector连接的问题。

最后提醒一下:每次启动测试前,一定要关闭所有Safari窗口和模拟器,避免残留的WebInspector进程干扰新的连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:54:54