0
用於多個(併發)測試執行的多個瀏覽器配置文件?多個(併發)測試執行的多個瀏覽器配置文件?
- 這是可能的嗎?
- 例如,我可以同時執行兩個測試,但是當兩個測試在同一瀏覽器中同時打開時,它們似乎共享相同的cookie。
- 請找到下面列出的我的主要瀏覽器工廠類,任何人都可以建議改變我的代碼的最佳方式,或需要的設置,這將使我能夠達到我的目標?
感謝您的幫助
public class BrowserFactory implements ISuiteListener {
private static WebDriver webdriver;
public static WebDriver getDriver() throws Exception {
try {
Properties p = new Properties();
FileInputStream fi = new FileInputStream(Constant.CONFIG_PROPERTIES_DIRECTORY);
p.load(fi);
String browserName = p.getProperty("browser");
switch (browserName) {
//firefox setup
case "firefox":
if (null == webdriver) {
System.setProperty("webdriver.gecko.driver", Constant.GECKO_DRIVER_DIRECTORY);
webdriver = new FirefoxDriver();
}
break;
//chrome setup
case "chrome":
if (null == webdriver) {
System.setProperty("webdriver.chrome.driver", Constant.CHROME_DRIVER_DIRECTORY);
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
webdriver = new ChromeDriver(caps);
}
break;
//IE setup
case "ie":
if (null == webdriver) {
System.setProperty("webdriver.ie.driver", Constant.IE_DRIVER_DIRECTORY);
webdriver = new InternetExplorerDriver();
}
break;
}
} catch (Exception e) {
System.out.println("Unable to load browser! - Exception: " + e.getMessage());
}
return webdriver;
}
@AfterClass
public void quitDriver() throws Exception {
if (null != webdriver) {
getDriver().manage().deleteAllCookies();
webdriver.quit();
webdriver = null;
}
// Output the time when a test class has ended
String tempTimeEndClass = new SimpleDateFormat("hh.mm.ss").format(new Date());
System.out.println("\nTEST CLASS END TIME: " + tempTimeEndClass);
}
}
非常感謝你的幫助! – Gbru
抱歉只是另一個問題,如果我從webdriver實例中刪除靜態,然後設置一個配置文件的測試共享,它不應該與cookie衝突?即使全部共享相同的配置文件? 再次感謝 – Gbru
正確的Gbru,相同的配置文件不應與Cookie衝突。 –