Wednesday, December 11, 2013

Confirm text is displayed in webpage

public boolean isTextPresent(String text) {
    List<WebElement> foundElements = driver.findElements(By.xpath 
("//*[contains(text(), '" + text + "')]"));
    return foundElements.size() > 0;
}

Tuesday, December 3, 2013

Handling Web Popup dialog boxes and Windows Authentication popup

Alert alert = driver.switchTo().alert();
      alert.accept();
(OR)
            alert.dismiss();
(OR)
            alert.read();
(OR)
     alert.getText();
(OR)
driver.switchTo().activeElement();
             
(OR)
 
public boolean isAlertPresent() {
 
           boolean presentFlag = false;
           String alterTitle = null;
 
           try {
 
                // Check the presence of alert
                Alert alert = driver.switchTo().alert();
                // Alert present; set the flag
                return true;
               
           } catch (NoAlertPresentException e) {
                return false;    
    }
          
       }
(OR)
public boolean isAlertPresent(int timeoutSec) {
            WebDriverWait wait = new WebDriverWait(driver, timeoutSec);
             try {
                 wait.until(ExpectedConditions.alertIsPresent());
                 return true;
             } catch (TimeoutException e) {
                 return false;
             }
       }

(OR)
public static void  handleAlert(WebDriver driver, boolean acceptAlert) {
        try {
            Alert alert = driver.switchTo().alert();
            if (acceptAlert) {
                alert.accept();
            } else {
                alert.dismiss();
            }
           
        } catch (NoAlertPresentException e) {
            
        }
    }


Handle Windows Authentication popup using Selenium Webdriver:

public static void handler() throws IOException
{
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
Runtime.getRuntime().exec("D:\\Scripts\\AutoITScript\\HandleAuthentication.exe");
  driver.get("https://www.engprod-charter.net/");
 }
 
AutoIT Script:
WinWaitActive("Authentication Required","","10")
If WinExists("Authentication Required") Then
Send("username{TAB}")
Send("Password{Enter}")
EndIf’
 
 
 By passing UsenName and Password in the URl:
public static final String TEST_ENVIRONMENT = "the-site.com";

public void login(String uname, String pwd){
String URL = "http://" + uname + ":" + pwd + "@" + TEST_ENVIRONMENT;
driver.get(URL);
Thread.sleep(5000);
}

Robot script:
public void login() throws Exception {

//wait – increase this wait period if required
Thread.sleep(5000);

//create robot for keyboard operations
Robot rb = new Robot();

//Enter user name by ctrl-v
StringSelection username = new StringSelection(“username”);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);

//tab to password entry field
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(2000);

//Enter password by ctrl-v
StringSelection pwd = new StringSelection(“password”);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, null);
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);

//press enter
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);

//wait
Thread.sleep(5000);
}
 

Friday, August 30, 2013

How to type some text in hidden field in WebDriver



First of all you have to change the value of type attribute as text from hidden. The following code using javascript would work for that:
EX:
jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");

Now, you are able to type on that text by using WebDriver. So, the overall code for typing with WebDriver using Java and Javascript as follows:


EX:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");
driver.findElement(By.xpath("//input[@name='body']")).clear();
driver.findElement(By.xpath("//input[@name='body']")).sendKeys("Ripon: body text");
 

Runing test script in multiple browsers using WebDriver

TestNG :
http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite">
  <test name="Firefox Test">
  <parameter name="browser" value="firefox"/>
    <classes>
      <class name="com.pack.ParallelTest"/>
    </classes>
  </test>
  <test name="Chrome Test">
  <parameter name="browser" value="chrome"/>
    <classes>
      <class name="com.pack.ParallelTest"/>
    </classes>
  </test>
    <test name="Internet Explorer Test">
    <parameter name="browser" value="iexplore"/>
    <classes>
      <class name="com.pack.ParallelTest"/>
    </classes>
  </test>
</suite> 

Write your Java WebDriver code as below:

@Parameters({"browser"})
@BeforeClass
public void setUp(String browser) {
           if(browser.equalsIgnoreCase("iexplore")){
              driver = new InternetExplorerDriver();
           }
           if(browser.equalsIgnoreCase("firefox")){
              driver = new FirefoxDriver();
           }
           if(browser.equalsIgnoreCase("chrome")){  
              driver = new ChromeDriver();
           }
         
           driver.manage().window().maximize();
     
       }

Web Table Handling With Selenium



public static void main(String[] args)
    {
 WebElement table_element = driver.findElement(By.id("testTable"));
        List tr_collection=table_element.findElements(By.xpath("id('testTable')/tbody/tr"));

        System.out.println("NUMBER OF ROWS IN THIS TABLE = "+tr_collection.size());
        int row_num,col_num;
        row_num=1;
        for(WebElement trElement : tr_collection)
        {
            List td_collection=trElement.findElements(By.xpath("td"));
            System.out.println("NUMBER OF COLUMNS="+td_collection.size());
            col_num=1;
            for(WebElement tdElement : td_collection)
            {
                System.out.println("row # "+row_num+", col # "+col_num+ "text="+tdElement.getText());
                col_num++;
            }
            row_num++;
        }

    }