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 ?
Différence entre driver.close() et driver.quit() en ce qui concerne l'ID de session.
driver.close
- Elle ferme la fenêtre du navigateur sur laquelle se trouve le focus et si l'instance du pilote est utilisée après driver.close
puis le jet de sélénium NoSuchSessionException : id de session invalide
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. si l'instance du pilote est utilisée après driver.quit
puis le jet de sélénium NoSuchSessionException : l'identifiant de la session est nul
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.