【问题标题】:org.openqa.selenium.NoSuchWindowException: Unable to get browserorg.openqa.selenium.NoSuchWindowException:无法获取浏览器
【发布时间】:2015-04-16 10:00:53
【问题描述】:

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

现在如果我想查看保存的消费者。我需要关闭窗口并需要将控件转移到主页。关闭窗口后,我正在尝试driver.switchTo.defaultContent()。但它不会改变控制。返回以下错误..

例外

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();




    }

}

【问题讨论】:

  • 你是在同一个标​​签页还是两个标签页中执行此操作?
  • 当您点击消费者链接时,您的窗口是否会刷新。

标签: java selenium selenium-webdriver


【解决方案1】:

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

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();

    }

【讨论】:

  • 这是我试过的..没有这样的窗口期望被抛出
猜你喜欢
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
相关资源
最近更新 更多