WebDriverIO:使用浏览器会话和 cookie 启动 Chrome

WebDriverIO: Starting Chrome with browser sessions & cookies

是否可以 运行 使用 Google Chrome 的 WebdriverIO 测试用例,而不创建 "private Chrome window"没有缓存或 cookies)。

我想启动 Chrome 浏览器我想使用来自 Chrome 的 cookie 和缓存,而不是完全默认状态

场景: 我在 Chrome 上登录我们的后端,它设置了一个我在本地主机上使用的令牌。当我 运行 通过 Webdriverio 进行测试时,它没有令牌,我必须再次进行登录过程。

因此,在终端中,如果我 运行 打开 http://localhost:3001,Chrome 将打开应用程序而无需再次登录。

!注意: 我不想在我的测试中通过登录过程...我只想使用存储在 Chrome 中的会话令牌在我手动登录后。

首先,测试工具从空白状态的浏览器启动,您应该不会感到震惊。谁会希望测试上下文被以前的浏览、设置、cookie 等污染?其次,我觉得有点可笑,你想自动化一个任务,但不关心自动化 3-5 个步骤来执行成功登录。


如果您有一些广泛的配置需要添加到您的 Chrome 实例(cookies、本地存储、扩展、用户和密码),那么自定义 Chrome Profiles 就是您要找的。

  1. 确定 Chrome 存储 默认 文件夹的位置

您基本上是在尝试使用一组特定的配置生成 Chrome。这些通常保存在 Default 文件夹中(路径:/Users/YourUserHere/Library/Application Support/Google/Chrome/Default)。

!注意: 此路径可能不同于 OS 到 OS,因此推荐的方法是找出 Chrome 的存储位置您设备上的这些配置是通过打开一个新的 Chrome 选项卡并键入 chrome://version。我们在这里寻找的设置是配置文件路径

  1. 将您的默认文件夹的内容存储在您指定的资产文件夹中

  2. 通过 --user-data-dir Chromium CLI switch:

  3. 添加自定义 Chrome 配置的路径

'goog:chromeOptions': {
// 'moz:firefoxOptions': {
  args: [ '--no-sandbox',
          '--disable-gpu',
          '--start-fullscreen',
          '--disable-notifications',
          '--user-data-dir=/Path/To/Your/CustomConfigsFolder',
        ],
   }
}
  1. 运行 使用 browser.debug() 进行测试并检查配置是否已成功导入。

注意: 我想我在 回答中从更一般的意义上解决了这个问题。检查一下,也许它进一步有助于设置它。