0

Im trying to automate hybrid application using Selendroid.

Im getting exception at "driver.switchTo().window("WEBVIEW").

Below is the code.

WebElement uname;
WebElement password;

@BeforeClass
public static void setUp() throws Exception{

    System.out.println("Set up in progress");
    SelendroidConfiguration config = new SelendroidConfiguration();
    config.addSupportedApp("D:DJ/HDFC/iAgent.apk");

    if(selendroidServer!=null){
        selendroidServer.stopSelendroid();
    }
    selendroidServer = new SelendroidLauncher(config);
    selendroidServer.launchSelendroid();

    SelendroidCapabilities capa = new SelendroidCapabilities();
    capa.setAut("com.hdfclife.msd:4.85");
    capa.setEmulator(false);
    //capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
    driver = new SelendroidDriver(capa);


}

@Test
public void selendroidTest() throws InterruptedException{
    System.out.println("Hello.. mSD under Test -- " + driver.getCurrentUrl());

    //driver.switchTo().activeElement();
    driver.switchTo().window("WEBVIEW");

    Thread.sleep(10000);
    uname = driver.findElement(By.name("username"));
    uname.sendKeys("110105");
    Thread.sleep(3000);

    password = driver.findElement(By.name("password"));
    password.sendKeys("Hdfc@123");
    Thread.sleep(3000);

    WebElement loginBtn = driver.findElement(By.id("loginButton"));
    loginBtn.click();
    Thread.sleep(3000);


}

@AfterClass
public static void tearDown(){

    selendroidServer.stopSelendroid();
    driver.quit();
}

Below is the error displaying.

org.openqa.selenium.WebDriverException: CATCH_ALL: java.lang.NullPointerException at io.selendroid.server.model.internal.WebViewHandleMapper.getWebViewByHandle(WebViewHandleMapper.java:49) at io.selendroid.server.model.SelendroidWebDriver.init(SelendroidWebDriver.java:310) at io.selendroid.server.model.SelendroidWebDriver.(SelendroidWebDriver.java:87)

Can any one help on this.

Thanks, Dheeraj

dheeraj
  • 324
  • 1
  • 9
  • What version of selendroid are you using. Could you try running this. This will output all the windows. Check if there aren't multiple webviews. String nr = driver.getWindowHandles().toString(); System.out.print(nr); – Madis Kangro Sep 02 '15 at 14:08

1 Answers1

0

Check with the WEBVIEW_01 and WEBVIEW_02 along with WEBVIEW in driver.switchto statement. The identifier of web view can also be like above.

susmit
  • 33
  • 1
  • 7