Showing posts with label javascript. Show all posts
Showing posts with label javascript. Show all posts

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  );