これらの違いは何ですか
Webdriver.Close()Webdriver.Quit()Webdriver.Dispose()
どちらをいつ使用するか?
これらの違いは何ですか
Webdriver.Close()Webdriver.Quit()Webdriver.Dispose()どちらをいつ使用するか?
Close()- 現在フォーカスがあるブラウザまたはページを閉じるために使用されます。
Quit()- Web ドライバー インスタンスをシャットダウンするか、Web ドライバー インスタンスを破棄する (すべてのウィンドウを閉じる) ために使用されます。
Dispose()- この方法を知りません。
driver.closeとdriver.quitは、Selenium WebDriver でブラウザー セッションを閉じるための 2 つの異なる方法です。両方を理解し、各メソッドをいつ使用するかを知ることは、テストの実行において重要です。したがって、私はこれらの両方の方法に光を当てようとしました。
driver.close- このメソッドは、フォーカスが設定されているブラウザ ウィンドウを閉じます。このメソッドはおなじみの名前ですが、インターフェイスを実装してWebDriverいません。AutoCloseable
driver.quit– このメソッドは基本的driver.disposeに、すべてのブラウザ ウィンドウを閉じて WebDriver セッションを正常に終了する内部メソッドを呼び出します。
driver.dispose- 前述のように、別の回答に従って静かに削除された WebDriver の内部メソッドです - 検証が必要です。前の方法のいずれかがほとんどのユース ケースで機能するため、このメソッドには通常のテスト ワークフローでのユース ケースは実際にはありません。
使用例の説明:driver.quitプログラムを終了したいときはいつでも使用する必要があります。開いているすべてのブラウザ ウィンドウを閉じ、WebDriver セッションを終了します。プログラムの最後に使用driver.quitしないと、WebDriver セッションが正しく終了せず、ファイルがメモリから消去されません。これにより、メモリ リーク エラーが発生する可能性があります。
上記の説明は、 WebDriverのdriver.closeとメソッドの違いを説明するはずです。driver.quitお役に立てば幸いです。
次の Web サイトには、セレンのテストに関するヒントがいくつかあります:リンク
quit(): このドライバーを終了し、開いていたすべての関連ウィンドウを閉じます。
close(): 現在のウィンドウを閉じ、現在開いている最後のウィンドウである場合はブラウザーを終了します。
close():- 同じドライバー インスタンスで複数のブラウザー ウィンドウを開いたとします。ドライバー インスタンスで close() を呼び出すと、ドライバー インスタンスが指している現在のウィンドウが閉じます。ただし、ドライバー インスタンスは引き続きメモリに残り、開いている他のブラウザー ウィンドウを処理するために使用できます。
quit():- ドライバ インスタンスで quit() を呼び出し、1 つ以上のブラウザ ウィンドウが開いている場合、開いているすべてのブラウザ ウィンドウが閉じられ、ドライバ インスタンスはガベージ コレクション、つまりメモリから削除されます。そのため、quit() を呼び出した後、このドライバー インスタンスを使用して他の操作を行うことはできません。実行すると、例外がスローされます。
dispose():- WebDriver インスタンスの dispose メソッドはないと思います。
参照用に、このセレンの公式 Java docリンクにアクセスできます。
Selenium WebDriver
WebDriver.Close()このメソッドは、現在開いているウィンドウを閉じるために使用されます。ドライバーがフォーカスしている現在開いているウィンドウを閉じます。
WebDriver.Quit()このメソッドは、WebDriver のインスタンスを破棄するために使用されます。そのドライバーに関連付けられているすべてのブラウザー ウィンドウを閉じて、セッションを安全に終了します。WebDriver.Quit() は Dispose を呼び出します。
WebDriver.Dispose()このメソッドは、すべてのブラウザ ウィンドウを閉じて、セッションを安全に終了します
私の理解ではdriver.close();、現在のブラウザーを閉じ、driver.quit();そのすべてのブラウザーを終了します。