Friday, February 15, 2013

How to get auto populated Google search result?


Getting auto populated Google search result



Using below logic you can get the auto populated search result (Google search) for your search word

Logic
driver.get("http://www.google.co.in");  
 driver.findElement(By.name("q")).sendKeys("Test");  
 List<WebElement> autoPopulatedList=driver.findElements(By.cssSelector("tr>td>span"));  
 for(WebElement ele:autoPopulatedList)  
 {  
    System.out.println(e.getText());  
 }  



Example



Output of given code for above search word is 
selenium rc sendkeys
selenium puthon by
selenium
selenium tutorial
selenium  ide
selenium webdriver
selenium rc
selenium ide download
selenium grid
selenium documentation


Regards,
SantoshSarma

Passing parameters to TestCase using testng

Passing parameter using TestNg

  • Some times there is a need to send parameters (like browser name, browser version ..etc).
  • May be you want to run the same test case with different values for same attribute.
You can achieve above cases by using @parameter annotation in testng

Below is the example for running same test cases in different browsers (firefox, chrome) by passing different parameters (browser name, version, profile)

TestNg Class
import org.openqa.selenium.WebDriver;  
   import org.testng.annotations.Parameters;  
   import org.testng.annotations.Test;  
   import org.testng.annotations.BeforeMethod;  
   import org.testng.annotations.AfterMethod;  
   import org.testng.annotations.BeforeClass;  
   import org.testng.annotations.AfterClass;  
   import org.testng.annotations.BeforeTest;  
   import org.testng.annotations.AfterTest;  
   public class ExampleTestCase   
   {  
     private static WebDriver driver;
     @Parameters({"browser,version"})
     @BeforeClass
     public void beforeClass(String browser,String version,String profile)
     {
          driver=getDriverInstance(browser,version,profile);
     }
     @BeforeTest
     public void beforeTest()
     {
     }  
     @Test
     public void f()
     {
          //your test code here
     }
   @AfterTest
    public void afterTest()
    {
    }
    @AfterClass
    public void afterClass()
    {
        driver.quit();
    }
}

getDriverInstance method implimentation
public static WebDriver getDriverInstance(String browser,String version,String profile)  
  {  
     WebDriver driver=null;  
     if(browser.equals("firefox"))  
     {  
       DesiredCapabilities capability = DesiredCapabilities.firefox();  
       capability.setVersion(version);
       capability.setCapability(FirefoxDriver.PROFILE, profile);
       driver = new FirefoxDriver(capability);  
     }  
     else if(browser.equals("chrome"))  
     {  
         DesiredCapabilities capability = DesiredCapabilities.chrome();  
         capability.setVersion(version);  
         driver = new ChromeDriver(capability);  
     }  
     return driver;  
  }  

TestNg Suite
<?xml version="1.0" encoding="UTF-8"?>  
   <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
   <suite thread-count="2" name=MyTestSuite" parallel="tests">  
       <test name="RunInFirefox" preserve-order="false">
          <parameter name="browser" value="firefox">
          <parameter name="version" value="8"/>
          <parameter name="profile" value="default">
                <classes preserve-order="true">  
                      <class name="com.test.TestCase1"/>  
                      <class name="com.test.TestCase2"/>  
                      <class name="com.test.TestCase3"/>  
                </classes>  
       </test>  
       <test name="RunInChrome" preserve-order="false">
          <parameter name="browser" value="chrome">
          <parameter name="version" value="21"/>  
               <classes preserve-order="true">  
                    <class name="com.test.TestCase1"/>  
                    <class name="com.test.TestCase2"/>  
                    <class name="com.test.TestCase3"/>  
               </classes>  
        </test>  
</suite>  



Related Topics
Running Junit Cases from command prompt
Upload photo in facebook using webdriver

Friday, February 1, 2013

Uploading photo in facebook using WebDriver

Automate Facebook with WebDriver
Uploading photo in facebook

driver.get("http://www.facebook.com");  
  driver.findElement(By.id("email")).clear();  
  driver.findElement(By.id("email")).sendKeys("*******@gmail.com");  
  driver.findElement(By.id("pass")).clear();  
  driver.findElement(By.id("pass")).sendKeys("*******");  
  driver.findElement(By.cssSelector("#loginbutton > input")).click();  
  driver.findElement(By.linkText("Facebook")).click();  
  driver.findElement(By.linkText("Add Photos/Video")).click();  
  driver.findElement(By.xpath("//div[text()='Upload Photos/Video']/
                           following-sibling::div/input")).sendKeys("C:\\MyPhoto.jpg");