在您的代码中:
WebElement image = chromeDriver.findElement(By.className("rg_di"));将返回在页面上找到的带有“ rg_di”类的第一个元素。
该元素中只有一个
<a href=... /a>标签。
您正在获取IndexOutOfBounds异常,因为您正在请求 第二个 异常(从零开始的索引编制)。如果将最终的WebElement更改为:
WebElement imagelink = image.findElements(By.tagName("a")).get(0);只需很小的改动,代码就可以为您工作。
这是我的快速版本(请注意,由于缺少存储元素,因此只需要做一件事情作为WebElements即可):
public static void main(String[] args) { // I don't have Chrome installed >.< WebDriver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("http://www.google.com"); WebElement searchBox = driver.findElement(By.id("gbqfq")); searchBox.sendKeys("pluralsight"); searchBox.sendKeys(Keys.RETURN); driver.findElement(By.linkText("Images")).click(); WebElement image = driver.findElement(By.className("rg_di")); image.findElements(By.tagName("a")).get(0).click(); // super-shortened version: // driver.findElement(By.className("rg_di")).findElements(By.tagName("a")).get(0).click();}


