-1

다른 창으로 이동하려고합니다. 그러나 파이어 폭스는 새 창 대신 새 탭에서 새 페이지를 여는 중입니다. 확인란을 선택하고 모두 선택을 취소합니다. 글쎄, 셀레늄 작업 할새 탭 대신 새 창을 여는 방법

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
    System.setProperty("webdriver.gecko.driver", "C:\\Selenium Purely\\geckodriver\\geckodriver.exe"); 
    WebDriver driver = new FirefoxDriver(); //Launches FireFox browser with blank URL 
    driver.get("http://the-internet.herokuapp.com/windows"); 

    Thread.sleep(4000); 

    String parentwindow = driver.getWindowHandle(); 

    System.out.println("Parent window handle is "+parentwindow); 
    System.out.println("Parent window title is "+driver.getTitle()); 

    driver.findElement(By.partialLinkText("Click Here")).click(); 

    Set <String> s1 = driver.getWindowHandles(); 

    Iterator <String> i1= s1.iterator(); 

    while (i1.hasNext()) 

      { 
       String childwindow = i1.next(); 

       System.out.println("Child window handle is "+childwindow); 
       System.out.println("Child window title is "+driver.getTitle()); 

       if(parentwindow != childwindow) 
       { 
        driver.switchTo().window(childwindow); 
        Thread.sleep(4000); 

       } 

      } 
+0

그래서 '여기를 클릭하십시오'에서 새 창을 열려고합니까? –

+0

예. 그것의 학습 목적을위한 무료 사이트. 여기를 클릭하면 새 창에서 열리지 않으며 새 탭에서 열립니다. 수동으로하면 속성을 적절히 설정 한 상태에서 새 창에서 열 수 있습니다. 그러나 운동하지 않습니다. – Jafar

+0

Selenium 버전 3.3.1 - Firefox 52 - – Jafar

답변

0

당신은 당신의 시스템 PATH 변수에 추가 될 예정으로 코드에서 파이어 폭스 EXE의 절대 파일 경로를 추가 할 필요가 없습니다. 새로운 Windows의 URL을 수행 할 수있는 몇 가지 설정이 있습니다를 엽니 다 파이어 폭스를 만들기 위해 지금

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");

: 그래서 당신은이 라인을 생략 할 수 있습니다.

package demo; 


import java.util.Iterator; 
import java.util.Set; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 


public class TestAnyURLMain { 

    public static void main(String[] args) throws InterruptedException { 


     System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); 
     WebDriver driver = new InternetExplorerDriver(); 
     driver.manage().window().maximize(); 
     driver.get("http://the-internet.herokuapp.com/windows"); 
     Thread.sleep(4000); 
     String parentwindow = driver.getWindowHandle(); 

     System.out.println("Parent window handle is "+parentwindow); 
     System.out.println("Parent window title is "+driver.getTitle()); 

     driver.findElement(By.partialLinkText("Click Here")).click(); 

     Set <String> s1 = driver.getWindowHandles(); 

     Iterator <String> i1= s1.iterator(); 

     while (i1.hasNext()) 

     { 
      String childwindow = i1.next(); 

      System.out.println("Child window handle is "+childwindow); 
      System.out.println("Child window title is "+driver.getTitle()); 

      if(parentwindow != childwindow) 
      { 
       driver.switchTo().window(childwindow); 
       Thread.sleep(4000); 

      } 

     } 

    } 

} 

이 당신을 도움이되는지 알려주세요 : 지금까지 질문이 How to open a new window instead of new tab을 우려하고 여기에 작업 IE와 코드입니다.

+0

예. 보호 모드 사용 안 함 확인을 업데이트 한 후 IE와 완벽하게 호환됩니다. 자, 나는 파이어 폭스와 똑같이 노력하고있다. 나는 추가했다 : System.setProperty ("webdriver.firefox.bin", "C : \\ Program Files (x86) \\ Mozilla Firefox \\ firefox.exe"); 그것이 내가 사용하고있는 정확한 프로파일을 집어내는 지 확인하기 위해 .. 수동으로 잘 작동합니다. 스크립트를 통해서가 아닙니다. – Jafar

+0

@Jafar이 코드'System.setProperty ("webdriver.firefox.bin", "C : \\ Program Files (x86) \\ Mozilla Firefox \\ firefox.exe");는 기존 Mozilla Firefox 사용자를위한 것입니다 . gecko를 사용할 때이 줄을 생략하십시오. – DebanjanB

+0

Dev - 새 탭 열기가 작동하지 않아서 그 조각을 추가했습니다. 단지 시행 착오. 그러나 그것은 도움이되지 않습니다. – Jafar