【问题标题】:WebDriverIO: Starting Chrome with browser sessions & cookiesWebDriverIO:使用浏览器会话和 cookie 启动 Chrome
【发布时间】:2019-10-21 23:18:58
【问题描述】:

是否可以使用 Google Chrome 运行 WebdriverIO 测试用例,而无需创建“私有 Chrome 窗口”无缓存或 cookie)。

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

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

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

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

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver webdriver-io


    【解决方案1】:

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


    如果您需要向 Chrome 实例添加一些广泛级别的配置(cookie、本地存储、扩展程序、用户和密码),那么自定义 Chrome Profiles 就是您所需要的正在寻找。

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

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

    !注意:此路径可能因操作系统而异,因此推荐的方法是打开一个新的 Chrome 选项卡并输入 chrome://version .我们在这里寻找的设置是Profile Path

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

    2. 通过--user-data-dir Chromium CLI switch 将路径添加到您的自定义 Chrome 配置:


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

    注意:我想我在this 回答中以更一般的方式解决了这个问题。看看吧,也许它进一步有助于设置。

    【讨论】:

      猜你喜欢
      • 2013-01-09
      • 2018-10-25
      • 2023-03-10
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 2021-07-07
      相关资源
      最近更新 更多