Quelle est la différence entre ces
Webdriver.Close()
Webdriver.Quit()
Webdriver.Dispose()
Lequel doit être utilisé et quand ?
Quelle est la différence entre ces
Webdriver.Close()
Webdriver.Quit()
Webdriver.Dispose()
Lequel doit être utilisé et quand ?
Close():- Supposons que vous ayez ouvert plusieurs fenêtres de navigateur avec la même instance de pilote, l'appel de close() sur l'instance de pilote fermera la fenêtre actuelle vers laquelle l'instance de pilote est dirigée. Mais l'instance du pilote reste toujours en mémoire et peut être utilisée pour gérer d'autres fenêtres de navigateur ouvertes.
quit():- Si vous appelez quit() sur l'instance du pilote et qu'il y a une ou plusieurs fenêtres de navigateur ouvertes, il fermera toutes les fenêtres de navigateur ouvertes et l'instance du pilote sera collectée, c'est-à-dire supprimée de la mémoire. Vous ne pouvez donc plus utiliser cette instance de pilote pour effectuer d'autres opérations après avoir appelé quit() sur elle. Si vous le faites, une exception sera levée.
dispose():- Je ne pense pas qu'il existe une méthode de disposition pour une instance WebDriver.
Vous pouvez consulter la doc officielle de selenium java. lien pour référence.
Selenium WebDriver
WebDriver.Close()
Cette méthode est utilisée pour fermer la fenêtre actuellement ouverte. Elle ferme la fenêtre ouverte actuelle sur laquelle le conducteur a le focus.
WebDriver.Quit()
Cette méthode est utilisée pour détruire l'instance de WebDriver. Elle ferme toutes les fenêtres du navigateur associées à ce pilote et met fin à la session en toute sécurité. WebDriver.Quit() appelle Dispose.
WebDriver.Dispose()
Cette méthode ferme toutes les fenêtres du navigateur et met fin à la session en toute sécurité.
Différence entre driver.close() & driver.quit()
driver.close - Il ferme la fenêtre du navigateur sur laquelle le focus est placé.
driver.quit - Il appelle essentiellement la méthode driver.dispose qui, à son tour, ferme toutes les fenêtres du navigateur et met fin à la session WebDriver de manière élégante.
Il y a deux différences entre Quitter et fermer.
après avoir entré l'url, le même ID de session - 73e6d7c2ae55d9f059ad1cce248adb75
Après le currentUrl() l'ID de session - 73e6d7c2ae55d9f059ad1cce248adb75
Après avoir quitté() le navigateur l'ID de la session - null
si l'utilisateur essaie d'exécuter une déclaration, l'ID de session null sera envoyé au serveur. En voyant ceci, le serveur enverra l'exception - L'ID de la session est nul. Utilisation de WebDriver après avoir appelé quit() ?
Dans Close(), un ID de session aléatoire (un seul) sera créé et maintenu pour toute la session. Après avoir exécuté la Close(), session Sera invalide ou expirée . Exception
Ainsi, dans quit() la session est nulle et dans close() l'identifiant de la session est invalide.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
La méthode #dispose semble avoir été silencieusement supprimée de l'API WebDriver. Aucune mention dans le changelog, la mention la plus récente que j'ai pu trouver était la docs api v2.26, dont je ne trouve plus le lien.
0 votes
Je vois d'où vient la confusion dans les réponses ci-dessous. Je pense que cette question était à l'origine une question C# car les méthodes ci-dessus (Close, Quit et Dispose) commencent par une majuscule (C#) et non par une minuscule (java). Dispose n'a pas été supprimé des liaisons client WebDriver C#.
0 votes
Dispose est un modèle .Net et n'est donc pas documenté dans la documentation de l'API de Selenium. Dans RemoteWebDriver, Quit appelle Dispose, qui envoie une commande Quit (DELETE /session/{sessionId}). Il y a plusieurs endroits du côté client où la commande Quit est interceptée. L'implémentation .net de FirefoxDriver, par exemple, effectue un appel à process.Kill() si le processus ne s'arrête pas de manière élégante.