Monday, 28 October 2013

Run cross browser tests using TestNG - Chrome | IE | Safari | Opera | Firefox

2| Extract the zipped folders and mention proper location in code [highlighted below].
3| Edit testng.xml as shown below,

testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" verbose="3" parallel="tests" thread-count="5">
  
<test name="Test on Firefox">
  <parameter name="browser" value="Firefox"/>
  <classes>      
    <class name="package.classname"/>       
  </classes>
</test>  
<test name="Test on Chrome">
  <parameter name="browser" value="Chrome"/>
  <classes>      
    <class name="package.classname"/>       
  </classes>
</test>
<test name="Test on InternetExplorer">
  <parameter name="browser" value="InternetExplorer"/>
  <classes>      
    <class name="package.classname"/>       
  </classes>
</test>
<test name="Test on Safari">
  <parameter name="browser" value="Safari"/>
  <classes>      
    <class name="package.classname"/>       
  </classes>
</test>
</test>
<test name="Test on Opera">
  <parameter name="browser" value="Opera"/>
  <classes>      
    <class name="package.classname"/>       
  </classes>
</test>
</suite> <!-- Suite -->


Snippet

@BeforeTest
@Parameters({"browser"})
  public void setUp(String browser) throws MalformedURLException
  {          
 if (browser.equalsIgnoreCase("Firefox")) 
 {
 System.out.println("Running Firefox");
  driver = new FirefoxDriver();
  baseUrl = "http://xyz.com";
 } 
 
 else if (browser.equalsIgnoreCase("chrome")) 
 {
 System.out.println("Running Chrome");
 System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");  
 driver = new ChromeDriver();
 baseUrl = "http://xyz.com";
 } 
 
 else if (browser.equalsIgnoreCase("InternetExplorer")) 
 {
 System.out.println("Running Internet Explorer");
 System.setProperty("webdriver.ie.driver","C:\\IEDriverServer.exe");
    DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);  //If IE fail to work, please remove this and remove enable protected mode for all the 4 zones from Internet options
 driver = new InternetExplorerDriver(dc);
 baseUrl = "http://xyz.com";
 } 


   else if (browser.equalsIgnoreCase("safari")) 
  {
  System.out.println("Running Safari");
  driver = new SafariDriver();
  baseUrl = "http://xyz.com";
  } 

   else if (browser.equalsIgnoreCase("opera")) 
  {
  System.out.println("Running Opera");
    // driver = new OperaDriver();       --Use this if the location is set properly | see note #2 below--
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("opera.binary", "C://Program Files (x86)//Opera//opera.exe");
    capabilities.setCapability("opera.log.level", "CONFIG");
    driver = new OperaDriver(capabilities);
  baseUrl = "http://xyz.com";
  } 
}


Note:- 
1| There are drawbacks in SafariDriver
Here, I have used,
Safari | 5.0.3 (7533.19.4)
Selenium | 2.35
OS | Windows Vista
# SafariDriver won't work properly in Windows 7
# SafariDriver does not support interacting with modal dialogs
# Cannot navigate forwards or backwards in browser history and more...

2| OperaDriver doesn't support Opera browser versions 13 and above
# Make sure the location of opera.exe under, %PROGRAMFILES%\Opera\opera.exe; If not, then try to locate the execution file using Capabilities

11 comments:

  1. Thanks, Sams. It would be better if you post the above for Mac OS X also.

    Expecting that post soon..

    Thank you. Keep up your work.

    ReplyDelete
    Replies
    1. Sure Pal; Keep you updated shortly.

      Cheers!
      Sams

      Delete
  2. Thank you Sam's, it was easy to implement for project i'm working.

    ReplyDelete
  3. Hi Prasanth,

    I am using selenium wedriver+IE8. When i running the scripts with this combination is not working. The IE8 browser flicker and shake sometimes so it's not finding the elements.Please tell me your suggestions.

    ReplyDelete
  4. ^I am having the same issue with webdriver+ie8 - the browser window flickers and shakes around - does anyone have any idea about this?

    ReplyDelete
  5. I am running the xml file for cross broswer, it works fine for firefox and chrome, but does not work for IE11 and Safari 5.1.7, please advise me asap as I have to give demo to my team.

    ReplyDelete
  6. Here is my xml file ..I tried giving the Thread.sleep(2000); command that maybe it will help.
    For IE, it brings up the browser http://localhost:7737/ and with message as This is the initial start page for the WebDriver server.
    and it pops up the safari browser as http://localhost:36839/connect.html?url=ws%3A%2F%2Flocalhost%3A36839 with message as SafariDriver Launcher

    please help me...







    Thread.sleep(2000);












    Thread.sleep(2000);























    ReplyDelete
  7. Don't know why my code is not readable.....it did not print .....

    ReplyDelete
  8. Thanks for the great information in your blog Selenium Training in Chennai

    ReplyDelete
  9. Best place to learn Appium Android IOS Automation Testing Training in Chennai

    Go for Appium training in chennai for real time mobile automation testing training with real time project support.
    UI Automation Tools with real time scenarios You can contact 8122241286 for Best APPIUM and selenium Training in Chennai

    ReplyDelete