【发布时间】:2015-03-24 06:53:41
【问题描述】:
我正在尝试从单击生成的弹出窗口切换到父窗口。
我尝试了一些我发现但没有奏效的方法。
public static String validateHierarchy(Properties prop)
{
String Hierarchy = driver.findElement(By.xpath("html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr/td[1]/table/tbody/tr[34]/td")).getText();
Log.info(Hierarchy);
String mainWindowHandle = driver.getWindowHandle();
driver.findElements(By.cssSelector("a[class='left-link']")).get(10).click();
//switching to current window
Set<String> s = driver.getWindowHandles();
System.out.println("Window"+mainWindowHandle);
System.out.println("Window"+s);
Iterator<String> ite = s.iterator();
while(ite.hasNext())
{
String popupHandle=ite.next().toString();
if(!popupHandle.contains(mainWindowHandle))
{
driver.switchTo().window(popupHandle);
//checking for forgot password text in the current page
String part1 = driver.findElement(By.xpath("html/body/div[3]/form")).getText();
Log.info(part1);
String part2 = driver.findElement(By.xpath(".//*[@id='tree']")).getText();
Log.info(part2);
driver.close(); //closing child window
}
}
driver.switchTo().window( mainWindowHandle );
String mainWindowHandle1 = driver.getWindowHandle();
System.out.println("Window"+mainWindowHandle1);
driver.findElements(By.cssSelector("a[class='left-link']")).get(11).click();
//switching to current window
Set <String> s1 = driver.getWindowHandles();
System.out.println("Window"+mainWindowHandle1);
System.out.println("Window"+s1);
Iterator<String> ite1 = s1.iterator();
while(ite1.hasNext())
{
String popupHandle1=ite1.next().toString();
if(!popupHandle1.contains(mainWindowHandle1))
{
driver.switchTo().window(popupHandle1);
//checking for forgot password text in the current page
String part1 = driver.findElement(By.xpath("html/body/div[3]/form")).getText();
Log.info(part1);
String part2 = driver.findElement(By.xpath(".//*[@id='tree']")).getText();
Log.info(part2);
driver.close(); //closing child window
}
}
driver.switchTo().window( mainWindowHandle );
return Hierarchy;
}
第一个弹出窗口得到了正确处理,但是当它出现并转到点击选项“get(11).click()”时。那里出错了
窗口{ed1019d1-0ac5-4cc0-ba18-8efdadc10c4c} 窗口[{ed1019d1-0ac5-4cc0-ba18-8efdadc10c4c},{9e9cbcf5-9c4b-4805-918b-8f3eb7d9f946}] 窗口{ed1019d1-0ac5-4cc0-ba18-8efdadc10c4c} 线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:11,大小:0 在 java.util.ArrayList.rangeCheck(未知来源) 在 java.util.ArrayList.get(未知来源) 在 JaamoonManage.validateHierarchy (JaamoonManage.java:299) 在 JaamoonManage.main(JaamoonManage.java:106)
即使我也尝试找到 String Hierarchy 元素,但我也找不到。它正在切换到父窗口,但它无法对此进行任何操作。
谁能指出我哪里有问题。
谢谢。
【问题讨论】:
-
我尝试了第一种方法,但没有帮助..
-
我不明白我是如何得到 IndexOutOfBoundException