Selenium Webdriver窗口切换随机失败

时间:2012-08-16 08:29:50

标签: selenium webdriver selenium-webdriver

我正在使用InternetExplorerDriver(我必须)。我有两个窗把手。我必须在这些窗口之间切换多个时间。 我使用这两行来做到这一点。

driver.switchTo().window(myWindowHandle1);
driver.findElement(By.xpath("//body")).click();

我添加了对身体的点击,因为否则有时开关无法正常工作,从那以后这对我很有用。

现在我遇到了一个新问题。 我的第三个窗口开关(1. window1 - > window2; 2. window2 - > window1; 3. window1 - > window2;)不再起作用。

ElementNotVisibleException: Cannot click on element --- in this case, line 2

所以身体不再可见了。 以前的窗口开关工作正常,因此手柄是正确的。 查找body元素By.tagName没有解决问题。 有人有同样的问题吗?溶液

提前致谢

此致

1 个答案:

答案 0 :(得分:0)

我终于找到了答案, 我使用以下方法切换到新窗口,

public String switchwindow(String object, String data){
        try {

        String winHandleBefore = driver.getWindowHandle();

        for(String winHandle : driver.getWindowHandles()){
            driver.switchTo().window(winHandle);
        }
        }catch(Exception e){
        return Constants.KEYWORD_FAIL+ "Unable to Switch Window" + e.getMessage();
        }
        return Constants.KEYWORD_PASS;
        }

要移至父窗口,我使用以下代码

 public String switchwindowback(String object, String data){
            try {
                String winHandleBefore = driver.getWindowHandle();
                driver.close(); 
                //Switch back to original browser (first window)
                driver.switchTo().window(winHandleBefore);
                //continue with original browser (first window)
            }catch(Exception e){
            return Constants.KEYWORD_FAIL+ "Unable to Switch to main window" + e.getMessage();
            }
            return Constants.KEYWORD_PASS;
            }

使用此代码在窗口之间切换。