Tuesday, May 20, 2014

Display Javascript Alert Message Using Selenium Webdriver

Using below method you can display alert messages in selenium webdriver script


public void Show_ScriptMessage_Close(String Message , int time) throws Exception
{
   
    time = time * 1000; // 1 value to 1000
     final ImageIcon icon = new ImageIcon("path to image icon");
      final JOptionPane optionPane = new JOptionPane(Message, JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION, icon , new Object[]{}, null);

      final JDialog dialog = new JDialog();
      dialog.setTitle("Selenium Automation Scripting");
     
      dialog.setModal(true);
     
      dialog.setLocationRelativeTo(null);
      dialog.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width)/2 - dialog.getWidth()/2, (Toolkit.getDefaultToolkit().getScreenSize().height)/2 - dialog.getHeight()/2);
      dialog.setContentPane(optionPane);

      dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
       
   
      dialog.pack();
     
    //create timer to dispose of dialog after 5 seconds
      // 1 sec = 1000
      Timer timer = new Timer(time, new AbstractAction() {
          @Override
          public void actionPerformed(ActionEvent ae) {
              dialog.dispose();
          }
      });
      timer.setRepeats(false);//the timer should only go off once

      //start timer to close JDialog as dialog modal we must start the timer before its visible
      timer.start();

      dialog.setVisible(true);
   
}




You can call the above function with your message and time

for e.g.
Show_ScriptMessage_Close("Checking the login functionality" , 5)




Selecting a date from Datepicker using Selenium WebDriver / Javascript code to pass date in datepicker

We can dynamically pass the date in Date picker field instead of selecting the date from datepicker calender.


WebElement date_element = driver.findElement(By.id(locator));
          

((JavascriptExecutor)driver).executeScript("arguments[0].value=arguments[1]", date_element, date);


Initialise the variable date as string and assign the value in required format. 
e.g String date ;
date = "01 May 2014"



How to Highlight Element with Selenium Webdriver using Java Script


We can highlight the Element using below method - 


 for (int i = 0; i < 2; i++) {
       
    WebElement element = driver.findElement(locator);
        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
                element, "color: blue; border: 3px solid red;");
        js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
                element, "");
       
    }





We can also create the function to call the same frequently.

public void highlightElement(WebElement element) {
   
    for (int i = 0; i < 2; i++) {
       
        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
                element, "color: blue; border: 3px solid red;");
        js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
                element, "");
       
    }

}



We can call above function as - 

WebElement element  = driver.findElement(By.xpath(locator);
 highlightElement(element  );