2016-06-28 27 views
1

Ich möchte Google-Suchergebnisse in neue Registerkarte öffnen. Ich habe diesen Code versucht:Öffnen Sie Google-Links in neue Registerkarte

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()); 
     } 

Bis jetzt öffnet der Code leere Registerkarten und druckt den Namen der Suchergebnisse. Wie kann ich die Links von den Suchergebnissen öffnen?

+0

Ich bin versuchen Sie Ihren Code .. es öffnet nur 11 neue Registerkarte mit gleiche URL wie https: //sites.google.com/a/chromium.org/chromedriver/... also im Grunde was ist das hier scheitern ??? –

+0

Ich muss die Links von Google-Ergebnis in jedem Tab öffnen. –

+0

Sie bedeutet, dass jedes Ergebnis, das auf der Hauptseite angezeigt wird, in der neuen Registerkarte geöffnet ist ?? –

Antwort

1

Gerade unterhalb der Linie ändern loop innen: -

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

zu

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

es funktioniert ... :)

1

Versuchen Sie diesen Code

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); 


     } 
Verwandte Themen