2016-06-28 3 views
1

Я хочу открыть результаты поиска Google на новую вкладку. Я пробовал этот код:Откройте ссылку Google на новую вкладку

WebDriver driver = new ChromeDriver(); 
     driver.get("http://www.google.com/xhtml"); 
     Thread.sleep(5000); 
     WebElement searchBox = driver.findElement(By.name("q")); 
     searchBox.sendKeys("ChromeDriver"); 
     searchBox.submit(); 

     System.out.println("Current Url: " + driver.getCurrentUrl()); 

     WebDriverWait wait = new WebDriverWait(driver, 10); 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("h3.r a"))); 

     List<WebElement> results = driver.findElements(By.xpath("//h3[@class='r']/a")); 

     for (int i = 0; i < results.size(); i++) 
     { 
      String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN); 
      driver.findElement(By.xpath("//h3[@class='r']/a")).sendKeys(selectLinkOpeninNewTab); 

      System.out.println("Google result " + results.get(i).getText()); 
     } 

Пока код открывает пустые закладки и печатает имя результатов поиска. Как я могу открыть ссылки из результатов поиска?

+0

Я попробовав свой код .. он просто открывает 11 новых вкладок с тот же URL-адрес, что и https: //sites.google.com/a/chromium.org/chromedriver/... так что в чем же дело? –

+0

Мне нужно открыть ссылки из результатов Google на каждую вкладку. –

+0

Вы подразумеваете, что каждый результат, который отображается на главной странице, открывается в новой вкладке? –

ответ

1

Просто измените ниже линии внутри loop: -

driver.findElement(By.xpath("//h3[@class='r']/a")).sendKeys(selectLinkOpeninNew‌​Tab); 

в

results.get(i).sendKeys(selectLinkOpeninNewTab); 

это работает ... :)

1

Попробуйте этот код

System.setProperty("webdriver.chrome.driver", "D:/WorkSpace/Driver/chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 

     driver.get("http://www.google.com/xhtml"); 
     Thread.sleep(5000); 
     WebElement searchBox = driver.findElement(By.name("q")); 
     searchBox.sendKeys("ChromeDriver"); 
     searchBox.submit(); 

     System.out.println("Current Url: " + driver.getCurrentUrl()); 

     WebDriverWait wait = new WebDriverWait(driver, 10); 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("h3.r a"))); 

     List<WebElement> results = driver.findElements(By.xpath("//h3[@class='r']/a")); 

     for (WebElement ele : results) { 
      String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL, Keys.RETURN); 
      ele.sendKeys(selectLinkOpeninNewTab); 


     }