在窗口之间切换控制

时间:2013-12-06 12:08:44

标签: java selenium-webdriver window

我是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,W​​in 8,IE 10。

1 个答案:

答案 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);}
 }