Ich bin derzeit laufen mehrere Java-Programme über Jenkins mit "Build Periodically" -Option und verwendet H 06 * * 1-5 (führen sie jeden Tag zwischen 6 Uhr morgens und 7 Uhr von Montag bis Freitag) .Kill Chromedriver-Prozess in Selen/Java
Es gibt bestimmte Programme, in denen ich auf Links klicke, was ein neues Fenster öffnet. Daher verwende ich den Code unten
driver.findElement(By.xpath(".//*[@id='terms']/li[1]/a")).click();
System.out.println("Home Page is loaded Successfully and Terms of Use Link is clicked");
ArrayList<String> window1 = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(window1.get(1));
Thread.sleep(3000);
driver.close();
Thread.sleep(3000);
driver.switchTo().window(window1.get(0));
Jetzt, nachdem das Programm läuft, mein anderes Programm das folgende schlägt fehl, da der ChromeDriver.exe Prozess, der bereits läuft.
Ich habe versucht, driver.quit()
anstelle von driver.close()
in den Code oben, aber es wird meinen gesamten Browser zu schließen.
Hinweis: Ich habe am Ende meines Programms driver.quit()
verwendet, was mir nicht hilft, die laufende Chromedriver.exe-Instanz loszuwerden, die geöffnet wurde, als ich das Fenster wechselte.
Bitte schlagen Sie mir einen guten Weg vor, um mit diesem Problem umzugehen. Ich habe in JAVA nach dieser Lösung gesucht. Aber meistens sehe ich Antworten für C#.
Dank
Können Sie Ihre genaue manuelle Schritte zusammenfassen Sie versuchen, zu automatisieren? Wenn Sie den Browser mit 'driver.close() schließen;' wie würden Sie 'driver.switchTo(). Window (window1.get (0)); '. Schließen Sie stattdessen die Fenstergriffe. – DebanjanB
Hallo, ich klicke auf einen Link "Nutzungsbedingungen" von meiner Homepage. Dies öffnet ein neues Fenster. Also wechsle ich in das neu geöffnete Fenster, um einen statischen Text aus diesem Fenster zu überprüfen. Sobald das erledigt ist. Ich schließe das Fenster und wechsle zurück zum ursprünglichen Home Page Window. Wenn ich also driver.close() verwendet habe, wird das neu geöffnete Fenster geschlossen, die Instanz von chromedriver.exe bleibt jedoch erhalten. Dies verursacht Probleme, wenn mein nächstes geplantes Programm ausgeführt wird. – johnsonambrose
so schließen wird das derzeit aktive Fenster schließen und wird Chromedriver ziemlich töten. Wenn Sie das Programm beenden, müssen Sie den Befehl "Schließen" verwenden, um Chrome und den Treiber zu schließen. –