2014-12-22 8 views
1

WebDriver를 처음 사용하기 때문에 브라우저 창이 전환되는 문제가 있습니다. 내 쿼리 해상도에 대한 검색 좀하고 대답은 내가 가장 잘 작동하지 않는 것으로 나타났습니다.Selenium WebDriver를 사용하여 두 브라우저 창간에 전환 할 수 없습니다.

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.Select; 
import org.openqa.selenium.support.ui.WebDriverWait; 
import org.testng.annotations.BeforeSuite; 


public class FrameWorkBase { 

public static WebDriver driver; 
    public static WebDriverWait wait; 
public static String firstWindow,secondWindow; 
    @BeforeSuite 
    public void startDriver() throws Exception{ 

driver= new FirefoxDriver(); // this firefox window is to open survey 
     driver.manage().window().maximize(); 
     wait=new WebDriverWait(driver, 40); 

     driver.get("http://www.cricinfo.com"); 
firstWindow=driver.getWindowHandle(); 

driver=new FirefoxDriver(); 
     driver.manage().window().maximize(); 

     driver.get("https://translate.google.co.in/"); 
secondWindow=driver.getWindowHandle(); 


     System.out.println("First window handle :" + firstWindow); 
     System.out.println("\n Second window handle :" + secondWindow); 

driver.switchTo().window(firstWindow); 
System.out.println("hello"); 
} 
} 

내가 'XYZ'가 첫 번째 창의 이름입니다 창 'XYZ'을 (를) 찾을 수 없습니다로 실행에 오류가 점점 오전 :

여기 내 코드입니다. 심지어 창 이름을 인쇄하고 오류를 표시하는 동일한 창을 표시하고 있습니다.

내가 여기서 잘못하고있는 것을 제안 해주세요. 감사합니다.

+0

다음을 참조하십시오. http://stackoverflow.com/questions/19117747/how-to-switch-between-two-windows-in-browser-using-selenium-java –

+0

제공된 답변은 제공된 것과 동일합니다. 탐색을 위해 다른 브라우저 창을 닫아야합니까? 그 대답은 나를 위해 도움이되지 않습니다. :( –

+0

부모님과 자녀 창 모두를 처리하는 한, 앞뒤로 움직여서 둘 중 하나에서 작업을 수행 할 수 있습니다. 아래에서 내 대답을 확인하십시오. 이것에 대한 약간의 근거를 얻습니다. :) – Subh

답변

1

드라이버 인스턴스를 다시 초기화했기 때문에이 문제가 발생했습니다.

driver=new FirefoxDriver(); 
driver.manage().window().maximize(); 
driver.get("https://translate.google.co.in/"); 

이 줄은 드라이버 인스턴스를 다시 초기화 했으므로 이제까지하려고했던 것 때문에 창 핸들을 찾을 수 없습니다. 두 웹 사이트를 동시에 작업하려는 경우 WebDriver driver2 = new FirefoxDriver();

+0

고마워, 그것은 나를 위해 작동 :) –

0

과 같은 다른 개체를 만들어보십시오 @Vivek가 질문에 답변했습니다.

Actions act = new Actions(); 
WebElement link = driver.findElement(By.xpath("//xpath of the link")); 

//Opening the link in new window (works in FF and Chrome) 
act.contextClick(link).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform(); 

을 그리고 당신은 핸들의 사용, 따라서 그들 사이에서 전환 할 수 있습니다 :하지만 당신은 여전히 ​​새 창에서 링크를 열려면, 당신은 그것을 위해 아래의 코드를 시도 할 수 있습니다. 또한, this link will help you handle two windows simultaneously.

관련 문제