2012-11-09 2 views
1

브라우저 사이를 전환하려고 시도합니다. 예를 들어 버튼을 클릭하면 새 브라우저가 실행됩니다. 은 핸들을 찾는 중입니다. 문제는 새로운 내부 객체를 찾을 수 없다는 것입니다. id, xpath, name 등으로 검색된 브라우저는 나에게 같은 제안을 할 수있다. 또한 URL과 일치시킬 수도 있습니다.셀렌 웹 드라이버에서 브라우저 간을 전환 할 수 없습니다

같은 해결책을 제공해주세요. 아래의 코드입니다.

// 이전 화면 집합 창 = driver1.getWindowHandles();

driver1.findElement(By.id("findButton")).click(); 

// 새 화면

driver1.switchTo().window("Customer Search"); 
driver1.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
int i = 1; 
while(i<= 10){ 
    for (String handle : driver1.getWindowHandles()) { 
     String myTitle = driver1.switchTo().window(handle).getTitle(); 
     System.out.println("myTitle value : " +myTitle); 

// 고객 검색

 if(myTitle.equalsIgnoreCase("Customer Search")){ 
      driver1.manage().window().maximize(); 

내가 권리를 통과 // 경우 새 창 제목을 핸들입니다 전환 여기에 일치하는 화면의 URL도 더미 ("sshsj")

// 그러나 새 창에서 개체를 인식 할 수 없습니다.

  driver1.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal"); 
        } 

답변

0

JS를 사용하여 새 창을 여는 것이 더 빠릅니다.

IJavaScriptExecutor jscript = driver as IJavaScriptExecutor; 
jscript.ExecuteScript("window.open()"); 

이어서 윈도우를 전환은 윈도우 핸들을 사용

List<string> handles = driver.WindowHandles.ToList<string>(); 
driver.SwitchTo().Window(handles.Last()); 
driver.get(url); 
driver.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal"); 
0

요소 iframe 내에 존재할 수있는 것이 가능하다. 이 경우 iframe 내부의 요소에 액세스하기 전에 해당 iframe으로 전환해야합니다.

관련 문제