Selenium JavaプログラムがをスローするIndexOutOfBoundsExceptionクロムで新しいタブを開くためにコードの下で実行されると例外が発生する。新しいタブを開いているときにSeleniumが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)
配列に存在しないインデックスにアクセスしようとすると、java.lang.IndexOutOfBoundsExceptionが発生します。新しいタブが存在するかどうかを確認する必要がありますか? – kushal
tabs.get(1)が原因ですか?エラーログにリストサイズが1だけ表示されるので、 – mhasan
タブの.size()の結果は何ですか? – kushal