gpt4 book ai didi

google-chrome - 是否可以使用带有 Protractor 的普通 Chrome 浏览器实例运行隐身模式?

转载 作者:行者123 更新时间:2023-12-04 20:02:39 26 4
gpt4 key购买 nike

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

另一种选择是运行 Chrome 和 Firefox 实例,但我需要控制对每个浏览器执行的操作。

最佳答案

您可以使用两个浏览器。运行脚本以找出您所在的浏览器,然后让不同的用户根据该脚本进行登录。首先,获取浏览器,这是一个脚本:

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();
};

关于google-chrome - 是否可以使用带有 Protractor 的普通 Chrome 浏览器实例运行隐身模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com