3
我需要在兩個瀏覽器中使用相同的視圖運行測試,但用不同的用戶記錄。由於服務器正在更改Cookie並註銷第一個用戶,因爲Chrome中多個窗口之間共享的Cookie,我無法運行測試。所以,我想知道是否可以同時運行Chrome正常實例和隱身模式。是否可以使用量角器在普通Chrome瀏覽器實例下運行隱身模式?
另一種選擇是運行Chrome和Firefox實例,但我需要控制如何處理每個瀏覽器。
我需要在兩個瀏覽器中使用相同的視圖運行測試,但用不同的用戶記錄。由於服務器正在更改Cookie並註銷第一個用戶,因爲Chrome中多個窗口之間共享的Cookie,我無法運行測試。所以,我想知道是否可以同時運行Chrome正常實例和隱身模式。是否可以使用量角器在普通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();
};
非常感謝。它完美的作品。 –