public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "geckodriver");
WebDriver driver = new FirefoxDriver();
String baseUrl = "https://accounts.zoho.in/signin?servicename=google";
driver.get(baseUrl);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
WebElement email = driver.findElement(By.xpath("//*[@id=\"login_id\"]"));
email.sendKeys("xxxxxxxx.xmail.com");
WebElement nextbutton = driver.findElement(By.xpath("//*[@id=\"nextbtn\"]"));
nextbutton.click();
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
WebElement password = driver.findElement(By.xpath("//*[@id=\"password\"]"));
password.sendKeys("123456789");
WebElement submit = driver.findElement(By.xpath("//*[@id=\"nextbtn\"]"));
submit.click();
driver.manage().timeouts().implicitlyWait(20000, TimeUnit.MICROSECONDS);
String oldTab = driver.getWindowHandle();
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
ArrayList<String> newTab = new ArrayList<String>(driver.getWindowHandles());
newTab.remove(oldTab);
driver.switchTo().window(newTab.get(0));
}
有人可以帮我提供此代码吗?我的代码不起作用(我是一个初学者)。我可以按照我的要求登录,但是我无法打开新选项卡,并且在转到新打开的选项卡中的另一个链接时也需要帮助。
org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at newProject.MyFirstClass.main(MyFirstClass.java:80)
您可以使用javascript执行器来完成
String baseUrl = "https://accounts.zoho.in/signin?servicename=google";
driver.get(baseUrl);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
((JavascriptExecutor) driver).executeScript("window.open()"); //open window 1
((JavascriptExecutor) driver).executeScript("window.open()"); //open window 2
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles()); //number of window WindowHandler array
driver.switchTo().window(tabs.get(1));
driver.get("https://www.google.com");
driver.switchTo().window(tabs.get(2));
driver.get("https://www.yahoo.com");
希望它能解决您的问题