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

使用Appium 2.2测试iOS模拟器时,如何跳过保存密码提示?

解决iOS模拟器登录后「保存密码」提示框的最优方案

一、通过Desired Capabilities配置直接禁用提示(最优)

在初始化Appium Driver时,添加XCUITest专属配置项,从根源阻止「保存密码」提示框弹出:

  • 添加 shouldDisableAutofill: true:禁用iOS自动填充功能,直接屏蔽密码保存提示
  • 或添加 autoDismissAlerts: true:自动关闭所有系统级弹窗(包含密码保存提示)

TypeScript示例代码:

const driver = await new AppiumDriver().createSession({
  capabilities: {
    platformName: 'iOS',
    platformVersion: '17.0', // 替换为你的模拟器版本
    deviceName: 'iPhone 15',
    app: '/path/to/your/app',
    automationName: 'XCUITest',
    shouldDisableAutofill: true, // 核心配置,阻止提示弹出
    // autoDismissAlerts: true, // 备选:自动关闭所有弹窗
  },
});

二、兜底方案:代码中手动处理弹窗

如果上述配置无效(适配旧iOS版本或特殊应用场景),可通过代码监听并关闭弹窗:

  1. 登录操作完成后,等待弹窗加载
  2. 定位「不保存」按钮并点击

TypeScript示例代码:

// 登录完成后等待弹窗出现
await driver.waitUntil(async () => {
  try {
    const dismissBtn = await driver.$('//XCUIElementTypeButton[@name="不保存"]');
    return await dismissBtn.isDisplayed();
  } catch (err) {
    return false;
  }
}, { timeout: 5000 });

// 关闭提示框
const dismissBtn = await driver.$('//XCUIElementTypeButton[@name="不保存"]');
await dismissBtn.click();

三、关于appium-chromedriver的说明

你使用的appium-chromedriver主要负责WebView自动化逻辑,「保存密码」提示属于iOS系统级弹窗,与chromedriver无关,无需针对它做额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:22:33