In one of the previous post we have discussed how to break catcha on webpage . To break captcha we need to run javascript code directly from our script .So it is important to know how to run javacript code using WebDriver. Here are the steps:
1.Cast the WebDrier instance to a JavascriptExecutor
WebDriver driver; JavascriptExecutor js = (JavascriptExecutor) driver;2.Use executeScript method to run the script
js.executeScript("return document.title");Here is the sample script using TestNG.
import java.util.ArrayList; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Reporter; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class ExecuteJavascript { WebDriver driver; @BeforeTest public void start(){ driver = new FirefoxDriver(); } @Test public void javaScriptExec(){ driver.get("http://duckduckgo.com/"); JavascriptExecutor js=(JavascriptExecutor) driver; String readyState=(String)js.executeScript("return document.readyState"); System.out.println("readyState : "+readyState); String title=(String)js.executeScript("return document.title"); System.out.println("title : "+title); String domain=(String)js.executeScript("return document.domain"); System.out.println("domain : "+domain); String lastModified=(String)js.executeScript("return document.lastModified"); System.out.println("lastModified : "+lastModified); String URL=(String)js.executeScript("return document.URL"); System.out.println("Full URL : "+URL); String error=(String) ((JavascriptExecutor) driver).executeScript("return window.jsErrors"); System.out.println("Windows js errors : "+error); } @AfterTest public void stop(){ driver.quit(); } }If you run the above program then the output will come like below :
readyState : complete
title : DuckDuckGo
domain : duckduckgo.com
lastModified : 02/02/2013 13:11:42
Full URL : https://duckduckgo.com/
Windows js errors : null
Reference :
http://code.google.com/p/selenium/wiki/WebDriverJs#Getting_Started
http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_How_do_I_execute_Javascript_directly?
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html