Selenium如何关闭Chrome浏览器并打开新窗口
我的场景是关闭浏览器并打开一个新浏览器。Selenium如何关闭Chrome浏览器并打开新窗口
public String openNewBrowserWindow() {
this.log("Opening new Browser window...");
String stringHandles;
Set<String> previousWindows = driver.getWindowHandles();
String previousHandle = driver.getWindowHandle();
((JavascriptExecutor)driver).executeScript("window.open();");
Set<String> newWindows = driver.getWindowHandles();
newWindows.removeAll(previousWindows);
String newHandle = ((String)newWindows.toArray()[0]);
stringHandles = previousHandle + ";" + newHandle;
return stringHandles;
}
我所做的是:
String handlesA = generic.openNewBrowserWindow();
String[] handleA = handlesA.split(";");
generic.closeBrowser();
generic.switchToWindow(handleA[1]);
这工作在Firefox,但不是在铬。你们有什么建议吗?
为什么不干脆:
driver.quit()
driver = new ChromeDriver()
你是什么情景真的?
这是我的场景。启动URL。请记住我的复选框并勾上。关闭浏览器而不登出。重新打开浏览器,用户应该已经登录。与driver.quit()的事情是我的会话将结束,如果我这样做。我有道理,对于我那可怜的故事讲述感到抱歉。第一次来这里。 :) – Seimone
@Seimone 每当你想intiate Chrome浏览器,系统属性必须被定义为chromedriver.exe
System.setProperty("webdriver.chrome.driver", driverPath+"chromedriver.exe");
WebDriver driver = new ChromeDriver();
此外,如果您想要关闭目前的Chrome浏览器窗口中使用下列之一你的代码。
driver.close();
如果您想要关闭您的所有chrome浏览器窗口,请在代码中使用以下代码。
driver.quit();
参考您的方案
1.Open的URL 2.Login与签署。 3.关闭浏览器。 4.打开浏览器并输入相同的URL。 5.检查同一用户是否已登录。
请尝试下面的代码并让我知道您的结果。
String chromeDriver = "enter the chromedriver.exe path";
String chromeProfile = "C:/Users/MSTEMP/AppData/Local/Google/Chrome/User Data/Default"; //Local chrome profile path.
System.setProperty("webdriver.chrome.driver", chromeDriver);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("start-maximized");
options.addArguments("user-data-dir="+chromeProfile);
capabilities.setCapability("chrome.binary",chromeDriver);
capabilities.setCapability(ChromeOptions.CAPABILITY,options);
WebDriver driver = new ChromeDriver(capabilities);
driver.get("https://www.gmail.com");
/*write your login credentials code with username, password and perform the
login operation with signed in*/
driver.close();
//Now invoke the chrome browser and enter the url alone.
driver = new ChromeDriver(capabilities);
driver.get("http://www.gmail.com");
//write the code for user signed verification.
我的方案是我需要登录到我的应用程序启用“保持我登录”,然后关闭浏览器。使用相同的URL重新启动浏览器,预期结果是我已登录。 启动URL。请记住我的登记号码。关闭浏览器。重新启动浏览器。用户无需登录。 – Seimone
@Seimone对于您的情况,我已在我的答案部分中进行了更改。查看编辑的更改并返回结果。 –
向我们展示你是如何在你的脚本调用 –
Chrome浏览器,我建议你看看这个链接: [StackOverflow_15067107](http://stackoverflow.com/questions/15067107/difference-between-webdriver-dispose -close-and-quit) –
@subhajitchakraborty - 谢谢! – Seimone