org.openqa.selenium.NoSuchWindowException:无法获取浏览器 [英] org.openqa.selenium.NoSuchWindowException: Unable to get browser

查看:812
本文介绍了org.openqa.selenium.NoSuchWindowException:无法获取浏览器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在登录我的应用程序(IE浏览器).在主页上,它具有消费者链接.我单击它.它将打开另一个窗口.输入消费者ID(仅必填字段)并保存.它正在保存.

I am logging in to my application (IE browser). On Home page, it has consumer link. I am clicking it.. It will open another window.. Enter the consumer id (mandatory field alone) and save. It is getting saved.

现在,如果我想查看已保存的使用者.我需要关闭窗口并将控件转移到主页.关闭窗口后,我正在按driver.switchTo.defaultContent()尝试.但这并没有改变控件.返回以下错误..

Now If I wanted to view the saved consumer. I need to close the window and need to transfer the control to Home page. I am trying by driver.switchTo.defaultContent() after closing the window. But it is NOT changing the control. the below error is returned..

例外:

Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to get browser (WARNING: The server did not provide any stacktrace information)

代码:

import java.io.File;
import java.io.IOException;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;

public class FirstTest {

    public static void main(String[] args) throws IOException, InterruptedException {
        // TODO Auto-generated method stub
        File file = new File("IEDriverServer.exe");
        System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
        WebDriver driver = new InternetExplorerDriver();        
        driver.get("http://xx.xxx.xxx.xx/mysuite/Login.aspx");
        driver.findElement(By.id("txtUser")).sendKeys("administrator");
        driver.findElement(By.id("txtPwd")).sendKeys("password");
        driver.findElement(By.id("cmdLogin")).click();      
        //Click Add customer (customer child window opens)
        driver.findElement(By.linkText("Add Customer")).click();
        driver.switchTo().window("Customer");
        //Enter Customer ID and Save
        driver.findElement(By.id("txtCode")).sendKeys("1234");
        driver.findElement(By.id("cmdPageSave")).click();
                //Close the child window
        driver.findElement(By.id("cmdPageClose")).click();
        //swith back to parent window
        driver.switchTo().defaultContent();
        Thread.sleep(3000);
        driver.findElement(By.linkText("All customers")).click();




    }

}

推荐答案

尝试在切换之前存储处理程序名称.

Try storing handler name before switching.

public static void main(String[] args) throws IOException, InterruptedException {
        // TODO Auto-generated method stub
        File file = new File("IEDriverServer.exe");
        System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
        WebDriver driver = new InternetExplorerDriver();        
        driver.get("http://xx.xxx.xxx.xx/mysuite/Login.aspx");
        driver.findElement(By.id("txtUser")).sendKeys("administrator");
        driver.findElement(By.id("txtPwd")).sendKeys("password");
        driver.findElement(By.id("cmdLogin")).click();      
        //Click Add customer (customer child window opens)
        driver.findElement(By.linkText("Add Customer")).click();

        //Store before switch    
        String  mainHandle= driver.getWindowHandle();

        driver.switchTo().window("Customer");

        //Enter Customer ID and Save
        driver.findElement(By.id("txtCode")).sendKeys("1234");
        driver.findElement(By.id("cmdPageSave")).click();
                //Close the child window
        driver.findElement(By.id("cmdPageClose")).click();
        //swith back to parent window

        driver.switchTo().window(mainHandle);

        Thread.sleep(3000);
        driver.findElement(By.linkText("All customers")).click();

    }

这篇关于org.openqa.selenium.NoSuchWindowException:无法获取浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆