Popular Articles

  I was a small boy when John Wayne died in 1979. But even at that age  I loved the films of John Wayne and watched them in cinema halls with
It is imperative that we have a relaxing atmosphere within the four walls that we call our home that has a calming effect on us and remains Stress-Free! How
Role of Inner Strength in our Life The inner strength should be the most important part of every human being since no one can do a thing properly without

Latest Articles

Life is not that easy Most of us cannot tolerate untidiness around us be it our home or office. In fact we hate our foolishness and we curse ourselves
Role of Inner Strength in our Life The inner strength should be the most important part of every human being since no one can do a thing properly without
  I was a small boy when John Wayne died in 1979. But even at that age  I loved the films of John Wayne and watched them in cinema halls with

Using selenium getEval we can achieve many tasks which Selenium RC alone can't do. 

 

Syntax:

getEval("javascript code as string"); It returns result of Java script.

 

Let's have simple example first, below example written using Junit but you can convert getEval script it to your preferred language as it is.

 

public class selenium extends SeleneseTestCase{

     

      @BeforeClass

      public void setup() throws Exception

      {

            selenium = new DefaultSelenium("localhost",4444,"*firefox""http://www.google.com");

            selenium.start();

      }

     

      @AfterClass

      public void tearDown()

      {

            selenium.close();

            selenium.stop();

      }

      @Test

      public void testNew() throws Exception

      {

           

          selenium.getEval("alert(\"hi\")");

           

      }

}

 

When you run this script you can see an alert "Hi".

 

Now testNew() function  replace with below code.

 

public void testNew() throws Exception

      {

           

            selenium.open("http://www.google.com");

            String sCount =    selenium.getEval("window.document.getElementsByTagName('input').length");

            System.out.println(sCount);

      }

 

This will give output 11. 

 

Try other example now. To resize your browser and  type search text in google text box.


 

      publicvoid testNew() throws Exception

 

      {

 

              selenium.open("http://www.google.com");

 

            selenium.getEval("selenium.browserbot.getCurrentWindow().moveTo(0, 0)");

 

            String screenWidth = selenium.getEval("selenium.browserbot.getCurrentWindow().screen.availWidth");

 

        String screenHeight = selenium.getEval("selenium.browserbot.getCurrentWindow().screen.availHeight");

 

        selenium.getEval("selenium.browserbot.getCurrentWindow().resizeTo(" + screenWidth + ", " + screenHeight + ")");

 

      

 

            String txtBoxId = selenium.getEval("window.document.getElementById(\"q\").name");

 

            selenium.type(txtBoxId,"selenium rc");

 

                       

 

      }

Above script maximize the goole.com window and type search text in Text Box. You can execute any Java Script using this function. It can be used to get check box count, check box selected count for automation. 

 

Let us one more examp of AJAX. Problem with AJAX is only part of web page will be loaded so its hard to know whether page is loaded or not before performing any ohter actions. Sometimes encounter with issues like object not found, element not found and access denied error. One way of dealing with this is using waitForControlLoad, waitForElementPresent commands. 

 

Other alternative is using getEval funcion more effectively. AJAX come up with funciton called readySate of XmlDom object. Using below code snippet can achieve this functionality.

 

string state;

            try

            {

                state = _selObj.GetEval("selenium.browserbot.getCurrentWindow().document.readyState");

                if (state == "complete")

                    return true;

                else

                    return false;

            }

            catch (Exception ex)

            {

                throw new Exception("Error Occured at IsBrowser Loaded()" + ex.Message);

                return false;

            }

More can do with getEval! Happy automation!!

  • No comments found