web-dev-qa-db-ja.com

Webdriver-ブラウザがまだ存在しているか、開いているかを確認する方法

ブラウザがまだ存在するかどうかを確認したいのですが、存在しない場合は、新しいブラウザを開きます!ブラウザがまだ存在するかどうかを確認するために利用可能なAPIがWebdriverにありますか?

16
user2048204

driver.close()を呼び出した後、driverの値は

_FirefoxDriver: firefox on WINDOWS(4b4ffb1e-7c02-4d9c-b37b-310c771492ac)
_

ただし、driver.quit()を呼び出すと、driverの値が次のように設定されます。

_FirefoxDriver: firefox on WINDOWS (null)
_

したがって、driver.quit()を呼び出した後にブラウザウィンドウを確認している場合は、以下の実装で知ることができます。

_WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
driver.quit();              
if(driver.toString().contains("null"))
{

System.out.print("All Browser windows are closed ");
}
else
{
//open a new Browser
}
_
5
Rupesh Shinde

それのためのAPIはありません。最善の方法は、次のような文字列を返すtoStringメソッドを呼び出すことです。

SafariDriver . . . null

次に、containsメソッドを呼び出すことができます。これは、文字列nullが存在することを確認します。

これは、quitが呼び出された場合にのみ機能することに注意してください。

3
Ant's

私はこれをChromeで積極的に使用しています。同時に、ブラウザーをcmdタイトルで実行しているので、コマンドラインを閉じて、過度の負荷を取り除くことができます。

from Selenium.common.exceptions import WebDriverException

while True:
    try:
        #do somethings
    except Selenium.common.exceptions.WebDriverException as e:
        if 'chrome not reachable' in str(e):
            os.system('taskkill /FI "WindowTitle eq YourTitleIfExistsOrDeleteThisLine*" /T /F')
1
Fazıl Akbulut