Pages

Showing posts with label troubleshooting. Show all posts
Showing posts with label troubleshooting. Show all posts

Sunday, 19 February 2012

How can I switch WebDriver control to new window?

To switch latest window opened use below code:

for(String winHandle : driver.getWindowHandles()){
    driver.switchTo().window(winHandle);
}

Sampe code:


 package test;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SwithcToNewWindow {

public static void main(String[] arg) {

// Instantiate the FirefoxDriver
WebDriver driver = new FirefoxDriver();

// Visit the Selenium-WebDriver FAQ site
driver.get("http://seleniumwebdriverfaq.tumblr.com/");

// Print the title of the page - It should print
// "Selenium-WebDriver FAQ's"
System.out.println("Title of the page before - switchingTo: " + driver.getTitle());

//Now click on RSS button; it will open in new window
driver.findElement(By.xpath("//a[text()='RSS']")).click();

//Switch to newly opened window -RSS and get the page titele
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
System.out.println("Title of the page after - switchingTo: " + driver.getTitle());

// Close the browser window
driver.close();

// Quit the driver
driver.quit();
}
}

Tuesday, 14 February 2012

Why I am getting "java.lang.IllegalStateException" while instantiating Chrome driver?

Sample error log:


Exception in thread "main" java.lang.IllegalStateException: The path to the chromedriver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromium/downloads/list
    at com.google.common.base.Preconditions.checkState(Preconditions.java:172)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:103)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:86)
    at tests.ChromeTest.main(ChromeTest.java:29)


To solve this problem, you have to set chromedriver executable path by the “webdriver.chrome.driver” system property.


That is, in java you can set that as below:


System.setProperty("webdriver.chrome.driver","C:\path\to\<<chromedriver_win_...>>\chromedriver.exe");

// Then Instantiate the ChromeDriver
WebDriver driver = new ChromeDriver();

Note - You can download latest ChromeDriver binary from here