是否可以在带有Protractor的普通Chrome浏览器实例上运行隐身模式?

Agbachicar

我需要在具有相同视图但使用不同用户登录的两个浏览器中运行测试。由于Chrome浏览器中多个窗口之间共享cookie,因此服务器正在更改cookie并注销第一个用户,因此我无法运行测试。因此,我想知道是否可以同时运行Chrome普通实例和隐身实例。

另一个选择是运行Chrome和Firefox实例,但是我需要控制如何处理每个浏览器。

jsuser

您可以使用两个浏览器。运行脚本以查找您所使用的浏览器,然后基于该浏览器让其他用户登录。首先,获取浏览器,这是一个脚本:

browser.getCapabilities()
.then(function(s) {

var platform = s.caps_.platform,
    browserName = s.caps_.browserName,
    browserVersion = s.caps_.version,
    shortVersion = browserVersion.split('.')[0],
    ie = /i.*explore/.test(browserName),
    ff = /firefox/.test(browserName),
    ch = /chrome/.test(browserName),
    sa = /safari/.test(browserName),
    shortName;

if (ie) {
    shortName = 'ie';
} else if (ff) {
    shortName = 'ff';
} else if (ch) {
    shortName = 'ch';
} else if (sa) {
    shortName = 'sa';
} else {
    throw new Exception('Unsupported browser: '+ browserName);
}

// Returns one of these: ['ch', 'ff', 'sa', 'ie']
browser.getShortBrowserName = function() {
    return shortName;
};

// Returns one of these: ['ch33', 'ff27', 'sa7', 'ie11', 'ie10', 'ie9']
browser.getShortNameVersionAll = function() {
    return shortName + shortVersion;
};

// Returns one of these: ['ch', 'ff', 'sa', 'ie11', 'ie10', 'ie9']
browser.getShortNameVersion = function() {
    if (ie) {
        return shortName + shortVersion;
    } else {
        return shortName;
    }
};

// Return if current browser is IE, optionally specifying if it is a particular IE version
browser.isIE = function(ver) {
    if (!ver) {
        return ie;
    } else {
        return ie && ver.toString() === shortVersion;
    }
};

browser.isSafari = function() {
    return sa;
};

browser.isFirefox = function() {
    return ff;
};

// Return if current browser is Chrome, optionally specifying if it is a particular Chrome version
browser.isChrome = function(ver) {
    if (!ver) {
        return ch;
    } else {
        return ch && ver.toString() === shortVersion;
    }
};

那么您需要一个函数来知道哪个用户登录:

global.getUserAndPassword = function getUser() {

var rv_user = process.env.PROTRACTOR_USER;

if (browser.isFireFox() && typeof process.env.PROTRACTOR_USER_2 !== 'undefined') {
  rv_user = process.env.PROTRACTOR_USER_2;
}

return [rv_user, process.env.PROTRACTOR_PASSWORD];

};

然后是登录功能:

global.loginFn = function loginFn() {
 var user_and_pass = getUserAndPassword();

 username.sendKeys(user_and_pass[0]);
 password.sendKeys(user_and_pass[1]);
 login.click();
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在浏览器上,Safari的“私人浏览”中的sessionStorage与Chrome的“隐身模式”和Firefox的“私人窗口”无法正常工作吗?

来自分类Dev

无法在专用浏览器模式(隐身窗口)中运行Silverlight应用程序

来自分类Dev

通过打开每个测试的浏览器实例,是否可以并行运行量角器测试?

来自分类Dev

WPF XAML浏览器应用程序(XBAP)是否可以在Android和Windows Phone浏览器上运行?有哪些选择?

来自分类Dev

在非隐身模式下从浏览器以无痕模式或私密模式在Firefox和Chrome中打开书签

来自分类Dev

如何使用Applescript检查Chrome是否以隐身模式运行?

来自分类Dev

带有硒的Python:在预先存在的浏览器上重新运行

来自分类Dev

是否有可以在浏览器中的JavaScript中运行的序言

来自分类Dev

是否可以将NetBeans设置为将Chrome Incognito运行为默认浏览器?

来自分类Dev

Chrome浏览器的“隐身模式”到底能做什么?

来自分类Dev

在Google Chrome浏览器的隐身窗口中打开链接

来自分类Dev

通过Powershell以隐身/私有模式打开多个浏览器

来自分类Dev

Selenium WebDriver-Chrome-C#-无法在隐身模式下将Selenium浏览器启动为最大化浏览器

来自分类Dev

带有AMD卡的Google Chrome浏览器上的WebGL

来自分类Dev

带有运行浏览器的optirun

来自分类Dev

是否可以在Google Chrome浏览器上运行Python GUI?如果是,请让我知道如何?

来自分类Dev

带有AMD卡的Google Chrome浏览器上的WebGL

来自分类Dev

隐身模式下的Google Chrome浏览器仍然记录访问记录

来自分类Dev

Chrome浏览器的访客和隐身模式有什么区别?

来自分类Dev

带有运行浏览器的optirun

来自分类Dev

是否可以在Chrome浏览器中为所有标签添加书签?

来自分类Dev

为什么在“隐身模式”下,Chrome浏览器会删除扩展程序的图标?

来自分类Dev

是否可以通过打开每个测试的浏览器实例来并行运行量角器测试?

来自分类Dev

画布可以在除Chrome之外的所有浏览器中正常运行

来自分类Dev

Chrome-打开单独的浏览器窗口,每个窗口均处于隐身模式,它们之间不共享数据

来自分类Dev

MitM攻击者是否可能知道浏览器何时进入隐身模式?

来自分类Dev

仅在隐身模式下阻止Google Chrome浏览器中的广告

来自分类Dev

在隐身模式下打开谷歌浏览器?

来自分类Dev

我可以禁用 Chrome 浏览器的访客模式吗?

Related 相关文章

  1. 1

    在浏览器上,Safari的“私人浏览”中的sessionStorage与Chrome的“隐身模式”和Firefox的“私人窗口”无法正常工作吗?

  2. 2

    无法在专用浏览器模式(隐身窗口)中运行Silverlight应用程序

  3. 3

    通过打开每个测试的浏览器实例,是否可以并行运行量角器测试?

  4. 4

    WPF XAML浏览器应用程序(XBAP)是否可以在Android和Windows Phone浏览器上运行?有哪些选择?

  5. 5

    在非隐身模式下从浏览器以无痕模式或私密模式在Firefox和Chrome中打开书签

  6. 6

    如何使用Applescript检查Chrome是否以隐身模式运行?

  7. 7

    带有硒的Python:在预先存在的浏览器上重新运行

  8. 8

    是否有可以在浏览器中的JavaScript中运行的序言

  9. 9

    是否可以将NetBeans设置为将Chrome Incognito运行为默认浏览器?

  10. 10

    Chrome浏览器的“隐身模式”到底能做什么?

  11. 11

    在Google Chrome浏览器的隐身窗口中打开链接

  12. 12

    通过Powershell以隐身/私有模式打开多个浏览器

  13. 13

    Selenium WebDriver-Chrome-C#-无法在隐身模式下将Selenium浏览器启动为最大化浏览器

  14. 14

    带有AMD卡的Google Chrome浏览器上的WebGL

  15. 15

    带有运行浏览器的optirun

  16. 16

    是否可以在Google Chrome浏览器上运行Python GUI?如果是,请让我知道如何?

  17. 17

    带有AMD卡的Google Chrome浏览器上的WebGL

  18. 18

    隐身模式下的Google Chrome浏览器仍然记录访问记录

  19. 19

    Chrome浏览器的访客和隐身模式有什么区别?

  20. 20

    带有运行浏览器的optirun

  21. 21

    是否可以在Chrome浏览器中为所有标签添加书签?

  22. 22

    为什么在“隐身模式”下,Chrome浏览器会删除扩展程序的图标?

  23. 23

    是否可以通过打开每个测试的浏览器实例来并行运行量角器测试?

  24. 24

    画布可以在除Chrome之外的所有浏览器中正常运行

  25. 25

    Chrome-打开单独的浏览器窗口,每个窗口均处于隐身模式,它们之间不共享数据

  26. 26

    MitM攻击者是否可能知道浏览器何时进入隐身模式?

  27. 27

    仅在隐身模式下阻止Google Chrome浏览器中的广告

  28. 28

    在隐身模式下打开谷歌浏览器?

  29. 29

    我可以禁用 Chrome 浏览器的访客模式吗?

热门标签

归档