【发布时间】:2016-06-28 18:53:20
【问题描述】:
我想在新标签页中打开 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());
}
到目前为止,代码会打开空选项卡并打印搜索结果的名称。如何打开搜索结果中的链接?
【问题讨论】:
-
我正在尝试您的代码.. 它只是打开了 11 个具有相同 URL 的新标签,例如 sites.google.com/a/chromium.org/chromedriver... 所以基本上这里的失败是什么???
-
我需要打开 Google 结果中的链接到每个标签中。
-
你的意思是显示在主页上的每个结果都在新标签中打开??
-
只需将此行
driver.findElement(By.xpath("//h3[@class='r']/a")).sendKeys(selectLinkOpeninNewTab);更改为此results.get(i).sendKeys(selectLinkOpeninNewTab);,它对我来说工作正常.. -
正确。我该怎么做?