2016-12-08 5 views
0

私はjavaでselenium webdriverを使ってアプリケーションを自動化しています。その中で私はブラウザのインス​​タンスを開く必要があります&いくつかのアクションを実行します。その後、私は別のブラウザのインス​​タンスを開く必要があります、その中でいくつかのアクションを実行&そのインスタンスを閉じます。次に、コントロールをもう一度最初のブラウザインスタンスに戻して、別のアクションを実行する必要があります。セレンのwebdriverで2つのウィンドウをJavaで切り替える

私が使用してみました:

String winHandleBefore = driver.getWindowHandle(); 
//then open new instance and perfom the actions 
driver.switchTo().window(winHandleBefore); 

をしかし、これはエラーを返しました:

org.openqa.selenium.remote.SessionNotFoundException: no such session

私はこれをどのように行うことができますか?誰でも助けることができますか?

+0

を開くために、一時的なこの使用driverを解決するために、新しいウィンドウ

WebDriver driver = new ChromeDriver(); int len = getWindowHandles().size(); // 1 as expected driver = new ChromeDriver(); len = getWindowHandles().size(); // still 1, has only the new window 

を開いた後に処理する方法あなたが開いていたし、新しいウィンドウを閉じますか? – Guy

+0

新しいウィンドウを開く:System.setProperty( "webdriver.chrome.driver"、 "D:\\ MyProjects \\ SeleniumTrials \\ chromedriver_win32 \\ chromedriver.exe"); \tドライバ=新しいChromeDriver(); \t driver.get(properties.getProperty( "VAR_ADMINURL")); \t driver.manage()。window()。maximize(); \t閉じる:driver.close(); – Amrutha

答えて

1

driver = new ChromeDriver();を実行したときに、driverオブジェクトが再初期化されたため、最初のウィンドウが失われました。あなたは、ウィンドウの数を確認することでそれを見ることができますが、新しいウィンドウ

WebDriver tempDriver = new ChromeDriver(); 
// do some stuff 
tempDriver.close(); 
関連する問題