如何在Protractor中连接并重新使用已打开的浏览器窗口

时间:2016-07-19 07:17:29

标签: selenium selenium-webdriver protractor webdriverjs

通常,量角器脚本在具有以下功能的新浏览器实例中执行

capabilities: {
'browserName': 'firefox'
}

是否有任何片段或方法可以调整此内容;这样我们的脚本就可以通过量角器使用已打开的浏览器。

3 个答案:

答案 0 :(得分:1)

对于我来说, angular2

对我有用
  1. 转到WebDriverHub并点击创建会话,复制生成的ID(例如:2919ed90-efac-48ee-83df-46f8e98ebce7),您将在步骤#2中需要它。< / LI>
  2. 添加/修改protractor.conf.js以反映以下内容。

    exports.config.seleniumAddress:&#39; http://localhost:4444/wd/hub&#39;, exports.config.seleniumSessionId:&#39; 2919ed90-efac-48ee-83df-46f8e98ebce7&#39;, exports.config.directConnect:false

  3. 观察:

    • directConnect设置为 false 非常重要。
    • 每次创建新会话时都需要更新
    • seleniumSessionId(希望有办法告诉,使用当前运行的浏览器窗口而不是每次更新seleniumSessionId

答案 1 :(得分:0)

在这一行上你有一个关于如何在命令行上传递给量角器的例子:https://github.com/angular/protractor/commit/3f3805f9496fb130ae01b3e3278ee1ea7684d8e7#diff-b61b72dbab31e232fdb8466ebf733c4dR54 您可以在配置中使用相同的参数来传递当前会话ID。 您通常可以通过browser.getSessionId获取当前的sessionId 例1:

var runProtractor = spawn('bin/protractor',
     ['spec/attachSession.js', '--seleniumSessionId=' + currentSessionId]);

示例2使用您的配置:

var checkOptions = {
     hostname: 'localhost',
     port: 4444,
     seleniumSessionId: yourCurrentSessionId
....
}

答案 2 :(得分:0)

使用 browser.getCapabilities()获取调试器地址。 使用调试器地址,我们可以与现有的浏览器进行通信。 在下面的链接中,我为此撰写了一篇文章,请对此进行研究。

Link