保持量角器浏览器会话活着

pap*_*ola 9 browser session selenium login protractor

我到处都看,但看起来我只是在问这个问题.

如何使量角器中的浏览器会话保持活动状态,而不是每次运行测试时都必须登录.我已经登录登录逻辑onPrepare以避免记录每个测试功能

onPrepare: function() {
    var mymodule = require("./e2e/mymodule");
    mymodule.login();
    mymodule.switchToProject("someproject");
}
Run Code Online (Sandbox Code Playgroud)

但是每次运行量角器时,仍然需要3-4秒登录,我想跳过.有任何想法吗 ?

我更喜欢chromeOnly: true设置解决方案,但单独的selenium服务器的解决方案也可以

Isa*_*man 8

Protractor每次运行时都会创建一个全新的Chrome配置文件.在弄清楚这一点之前,你需要意识到这为你的测试提供了可靠性:它们每次都会以相同的方式运行,因为它们是从空白的平板开始的.如果您决定使用已登录的持久性配置文件,那么一旦登录到期,配置文件被删除,或者您尝试在另一台计算机上运行它们,您的量角器测试将开始失败.

也就是说,有一种方法可以让Chrome在每次Proractor测试中重复使用相同的配置文件(包括cookie和所有设置).在你的protractor.conf.js你会做这样的事情:

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
        'args': ['--user-data-dir=/a/random/path']
    }
}
Run Code Online (Sandbox Code Playgroud)

'args'是执行部分.它允许您在启动时将命令行参数传递给Protractor的Chrome版本(例如,您可以传入'--start-maximized'以在启动时最大化Chrome).

替换/a/random/path为系统上的任何文件路径(从root开始).只需确保已创建您引用的文件夹.您无需使用自己的Chrome个人资料路径 - 这只是不必要的麻烦.在某处创建一个文件夹并使用它.

当Protractor启动Chrome时,其配置文件将位于您指定的位置,只要您的路径保持不变,它就会继续使用它.

请记住,这是一个浏览器操作,与Selenium或Protractor正在做的事情完全没有关系.我不知道是否有办法用Firefox或其他浏览器来做这件事,因为每个人表面上都有自己的存储用户配置文件的方式.