//Instantiate any WebDriver; Eg. Firefox WebDriver driver = new FirefoxDriver(); driver.get("http://seleniumwebdriverfaq.tumblr.com/"); //Casting the WebDriver instance to a JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor) driver; //Execute the JavaScript - Eg. to get the page title js.executeScript("return document.title"); //Print the out put System.out.println("Page title from Java script: " +js.executeScript("return document.title")); System.out.println("Page title from driver.getTitle() : " +driver.getTitle()); //JUnit Assertion Assert.assertEquals(js.executeScript ("return document.title"),driver.getTitle());
Friday, 9 March 2012
How can I execute Javascript?
How to take screenshot of the test page?
We can take entire page screenshot by following code:
//Instantiate any WebDriver; Eg. Firefox
WebDriver driver = new FirefoxDriver();
driver.get("http://seleniumwebdriverfaq.tumblr.com/");
//Get the screenshot as file
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Copy the screenshot to your file system
FileUtils.copyFile(scrFile, new File("c:\screenshots\screenshot.png"));
How can I start Firefox with add-ons installed?
Create a Firefox profile and add required add-ons.
Take ‘Firebug’ as an example, save the Firebug XPI into the C:FF_addons folder as firebug.xpi (Download XPI file from Firebug download page, right-click on the “Download Now” and save as C:FF_addonsfirebug.xpi).
Then create a Firefox profile and add Firebug add-on while instantiating FirefoxDriver as below:
String firebugFilePath = "C:\FF_addons\firebug.xpi";
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(new File(firebugFilePath));
// Add more FF addons if required
WebDriver driver = new FirefoxDriver(profile);
Thursday, 8 March 2012
How can I handle alert dialog box?
public String getAlert() { Alert alert = driver.switchTo().alert(); String alertMsg = alert.getText(); alert.accept(); return alertMsg; }
Wednesday, 7 March 2012
Why am getting security message while instantiating IE WebDriver?
Security Message:“Protected Mode must be set to the same value (enabled or disabled) for all zones.”
Solutions 1:
Set manually the protected mode to the same value (enabled or disabled) for all zones in ‘Internet Options’ —> ‘Security’ Tab.
Solution 2:
Set a capability while instantiating IE driver, as shown below:
DesiredCapabilities capability=DesiredCapabilities.internetExplorer();
capability.setCapability(
InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_
IGNORING_SECURITY_DOMAINS, true);
WebDriver webdriver = new InternetExplorerDriver(capability);
How can I Kill the WebDriver instance?
The quit() method will kill the WebDriver instance.
That is,
//If "driver" is an instance of WebDriver;Then to kill the instance:
driver.quit();
How can I read background-color of an element?
We can get/read the background-color of an element by using getCssValue() method of WebDriver:
driver.get("http://www.google.co.in/");
String color = driver.findElement(By.name("btnK")).getCssValue("background-color");
System.out.println("The background color of Google search button"+color);
How can I get required attribute value of the element?
We can get the specific attribute of an element by using getAttribute() method:
//Find the element
WebElement gButton = driver.findElement(By.name("btnK"));
// Get the required attribute value
String gButtonStyle = gButton.getAttribute("style");
System.out.println("The Google search button's style attribute value is "+gButtonStyle);
The getAttribute() method gets the value of an element attribute specified.
Suppose, you want to get the value/content of a text field then, specify the attribute name as “value” (instead off “style”).
How can I get the text of the element?
Using getText() method, we can get the text of the element.
That is,
WebElement gButton = driver.findElement(By.name("btnK"));
String gButtonText = gButton.getText();
System.out.println("The Google search button's display text is "+gButtonText);
The getText() method gets the text of an element. This uses either the textContent (Mozilla-like browsers) or the innerText (IE-like browsers) of the element, which is the rendered text shown to the user.
How can I get title of the window?
We can get the title of the window by using getTitle() method:
String title = driver.getTitle();
System.out.println("Title of the page is "+title);
Monday, 5 March 2012
How can I move backwards or forwards in browser's history?
We can move backwards and forwards in browser’s history as below:
//To go backward
driver.navigate().back();
//To go forward
driver.navigate().forward();
Sunday, 4 March 2012
How can I use/emulate Selenium RC with WebDriver?
The Java version of WebDriver provides an implementation of the Selenium-RC API. It allows those who have existing test suites using the Selenium-RC API to use WebDriver under the covers.
Example:
// You may use any WebDriver implementation. Firefox is used here as an example
WebDriver driver = new FirefoxDriver();
// A "base url", used by selenium to resolve relative URLs
String baseUrl = "http://www.google.com";
// Create the Selenium implementation
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);
// Perform actions with selenium
selenium.open("http://www.google.com");
selenium.type("name=q", "cheese");
selenium.click("name=btnG");
// Get the underlying WebDriver implementation back. This will refer to the
// same WebDriver instance as the "driver" variable above.
WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getWrappedDriver();
//Finally, close the browser. Call stop on the WebDriverBackedSelenium instance
//instead of calling driver.quit(). Otherwise, the JVM will continue running after
//the browser has been closed.
selenium.stop();
How can I check the presence of WebElement on page?
We can check the presence of WebElement on page by implementing custom isElementPresent method as below:
protected boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
This method will return true, if the WebElement with ‘by’ available otherwise returns false.