我是selenium的新手。我正试图在三个窗口之间切换控制,即从窗口A到窗口B,然后从窗口B到窗口C.我对上述两个程序使用相同的代码,代码是:
`for(String winHandle : idriver.getWindowHandles()){
idriver.switchTo().window(winHandle);
}`
问题是控件使用此代码从窗口A切换到窗口B,但是当我使用相同的代码将控件从窗口B切换到窗口C时,代码保持在同一窗口B.我尝试了以下:
for(String winHandle : idriver.getWindowHandles()){
idriver.switchTo().window(winHandle);
System.out.println( idriver.switchTo().window(winHandle));
}
并打印控制台:
InternetExplorerDriver: internet explorer on WINDOWS (5e2b3ada-0ee7-4540-9d94-d6f74e72b6bd)
InternetExplorerDriver: internet explorer on WINDOWS (5e2b3ada-0ee7-4540-9d94-d6f74e72b6bd)
InternetExplorerDriver: internet explorer on WINDOWS (5e2b3ada-0ee7-4540-9d94-d6f74e72b6bd)
在将窗口从A切换到B然后从B切换到C时,两次打印相同的内容。
我正在使用Java,selenium,Win 8,IE 10。
答案 0 :(得分:0)
请您发布完整的代码....
我认为您已找到B中的元素来切换C窗口
之后你可以逐个关闭..i.e首先关闭C窗口和B窗口..并返回父窗口
String handle=driver.getWindowHandle();//get handle of parent window
Set<String> handles = driver.getWindowHandles();//get all window handles
for(String han:handles)
{
if(!han.equals(handle)
{driver.switchTo().window(han);}
}