2017-01-15 7 views
0

Это код, который я пытался обработать, но URL-адрес открывается на вкладке Google.Chromedriver не открывает ссылку на новую вкладку или окно, вместо этого ожидаемая ссылка открывается в текущей вкладке/окне

System.setProperty("webdriver.chrome.driver", "/home/ish/chromedriver");  

WebDriver driver =new ChromeDriver(); 

driver.get("http://google.com"); 
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"n"); 
try { 
    Thread.sleep(3000); 
    for(String windowHandle:driver.getWindowHandles()) { 
     driver.switchTo().window(windowHandle); 
    } 
    driver.get("http://fb.com"); 
} catch (Exception e) { 
    System.out.println(e); 
} 

ответ

0

В итерации над окнами обрабатываются оба переключателя. Последний переключатель возвращает фокус в первое окно, и связь открывается там.

Вы должны сделать переключатель только в новом окне

System.setProperty("webdriver.chrome.driver", "/home/ish/chromedriver");  

WebDriver driver = new ChromeDriver(); 

driver.get("http://google.com"); 

String firstWindowHandle = driver.getWindowHandle(); 

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"n"); 
try { 
    Thread.sleep(3000); 
    for(String windowHandle : driver.getWindowHandles()) { 
     if (!windowHandle.equals(firstWindowHandle)) { 
      driver.switchTo().window(windowHandle); 
     } 
    } 
    driver.get("http://fb.com"); 
} catch (Exception e) { 
    System.out.println(e); 
} 
+0

все еще нерабочий .. такой же проблема .. нет открытие окно. –

0

Driver открывается в том же окне, так как цикл переходит старый дескриптор

код, вероятно, должен выглядеть ниже

System.setProperty("webdriver.chrome.driver", "/home/ish/chromedriver");  

WebDriver driver =new ChromeDriver(); 

driver.get("http://google.com"); 
     driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"n"); 
     String currentHandle = driver.getWindowHandle(); 
     try { 
      Thread.sleep(3000); 
      for(String windowHandle:driver.getWindowHandles()) { 
       if(!currentHandle.equals(windowHandle)){ 
        driver.switchTo().window(windowHandle); 
        break; 
       } 
      } 
      driver.get("http://fb.com"); 
     } catch (Exception e) { 
      System.out.println(e); 
     }