2016-06-07 10 views
1

Mein Szenario ist es, den Chrome-Browser zu schließen und ein neues zu öffnen.Wie kann Selenium Chrome Browser zu schließen und zu öffnen One

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

Was ich ist dies tat:

String handlesA = generic.openNewBrowserWindow(); 
String[] handleA = handlesA.split(";"); 
generic.closeBrowser(); 
generic.switchToWindow(handleA[1]); 

Dieses auf Firefox funktioniert aber nicht in Chrom. Habt ihr Vorschläge?

+0

Zeigen Sie uns, wie Sie Chrome-Browser in Ihrem Skript aufrufen –

+0

Ich schlage vor, Sie auf diesen Link, um zu sehen: [StackOverflow_15067107] (http://stackoverflow.com/questions/15067107/difference-between-webdriver-dispose -close-and-quit) –

+0

@subhajitchakraborty - danke! – Seimone

Antwort

4

Warum nicht einfach:

driver.quit() 
driver = new ChromeDriver() 

Was Ihr Szenario ist wirklich?

+0

Das ist mein Szenario. URL starten Melden Sie sich mit "An mich erinnern" an. Schließen Sie den Browser, ohne sich abzumelden. Öffnen Sie den Browser erneut und der Benutzer sollte sich bereits anmelden. Die Sache mit driver.quit() ist, dass meine Sitzung beendet wird, wenn ich das tue. Mache ich einen Sinn, Entschuldigung für meine schlechte Erzählung. Das erste Mal hier. :) – Seimone

1

@Seimone Jedes Mal, wenn Sie einen Chrome-Browser intiate möchten, Systemeigenschaft muss

System.setProperty("webdriver.chrome.driver", driverPath+"chromedriver.exe"); 
WebDriver driver = new ChromeDriver(); 

auch auf die chromedriver.exe definiert werden, wenn Sie möchten, dass Ihre aktuellen Chrome-Browser-Fenster verwenden, das folgende in schließen dein Code.

driver.close(); 

Wenn Sie alle Ihre Chrome-Browser-Fenster schließen möchten, verwenden Sie die folgende in Ihrem Code.

driver.quit(); 

Mit Bezug auf Ihr Szenario

1.Open die URL 2.Melden mit unterzeichnet. 3.Schließen Browser. 4.Öffnen Sie den Browser und geben Sie dieselbe URL ein. 5.Überprüfen Sie, ob der Benutzer angemeldet ist.

Probieren Sie den folgenden Code aus und lassen Sie mich Ihr Ergebnis wissen.

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. 
+0

Mein Szenario ist, ich muss mich in meine Anwendung mit "keep mich anmelden" aktiviert und dann den Browser schließen. Starten Sie den Browser mit derselben URL neu, und das erwartete Ergebnis ist, dass ich bereits angemeldet bin. URL starten. Melde dich an und erinnere mich an mich. Schließen Sie den Browser. Starten Sie den Browser neu. Benutzer müssen sich nicht anmelden. – Seimone

+0

@Seimone Für Ihr Szenario habe ich die Änderungen in meinem Antwortabschnitt vorgenommen. Sehen Sie sich die bearbeiteten Änderungen an und kehren Sie mit dem Ergebnis zurück. –

Verwandte Themen