2015-05-13 29 views
3

我需要在兩個瀏覽器中使用相同的視圖運行測試,但用不同的用戶記錄。由於服務器正在更改Cookie並註銷第一個用戶,因爲Chrome中多個窗口之間共享的Cookie,我無法運行測試。所以,我想知道是否可以同時運行Chrome正常實例和隱身模式。是否可以使用量角器在普通Chrome瀏覽器實例下運行隱身模式?

另一種選擇是運行Chrome和Firefox實例,但我需要控制如何處理每個瀏覽器。

回答

2

您可以使用兩個瀏覽器。運行一個腳本來找出你所在的瀏覽器,然後讓不同的用戶根據它進行登錄。 首先,讓瀏覽,這裏是一個腳本:

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

非常感謝。它完美的作品。 –

相關問題