java - Selenium 在打开新选项卡时抛出 IndexOutOfBoundsException

标签 java selenium selenium-chromedriver

Selenium Java 程序在执行以下代码以在 Chrome 中打开新选项卡时抛出 IndexOutOfBoundsException 异常。

Java 代码:

System.setProperty("webdriver.chrome.driver", "/Users/john/Desktop/chromedriver");
                    WebDriver driver = new ChromeDriver();
                    driver.manage().window().maximize();
                    String baseUrl = "http://google";
                    driver.get(baseUrl);
                    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

                    ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles()); 
                    driver.switchTo().window(tabs.get(1)); // switches to  new tab
                    driver.get("https://www.facebook.com");

错误:

Starting ChromeDriver 2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b) on port 48571
Only local connections are allowed.
May 12, 2017 12:54:14 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at test.SeleniumTest.main(SeleniumTest.java:31)

最佳答案

driver.switchTo().window(tabs.get(1)); 行中,您会得到该异常。发生这种情况是因为,除了第一个窗口之外,您没有打开任何其他窗口。

关于java - Selenium 在打开新选项卡时抛出 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43929649/

相关文章:

ruby-on-rails - 如何使用 Rails 从网站下载图像?

javascript - 如何在selenium机器人框架脚本中使用javascript单击元素?

c# - Selenium:实例化时为 "DevTools Request: 127.0.0.1:12583/json/version failed"

java - 如何在没有地址栏的情况下获取浏览器窗口大小Java?

python - 使用selenium在多个浏览器上同时运行python SCRIPT

Java:将 TreeModel、TableModel 序列化为 JSON,反之亦然?

java - 手电筒开/关应用程序崩溃

java - 更改 Spring Boot 使用的数据库模式

java - 简化几个 boolean 条件java

Selenium 2 - findElement(By.xpath) 的范围可以限定为特定元素吗?