Showing posts with label Advanced level FAQ on Selenium-WebDriver. Show all posts
Showing posts with label Advanced level FAQ on Selenium-WebDriver. Show all posts

Saturday, August 8, 2015

How to test the mobile site or how to open mobile browser in desktop using selenium

There is 2 ways to test your website on mobile browser-
1) if your domain name in mobile open like-> m.domainName.com 
then you can directly open the mobile site on simple browser opened by WebDriver and start working.
for ex- http://m.jabong.com/,  http://m.goibibo.com/

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class MobileSite {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://m.goibibo.com/");
    }
}

2)  if your domain name in mobile open like--> www.domainName.com then it is required to change the user agent while opening the browser thru selenium. By changing the user agent, it will open the browser in mobile mode (same as opened in mobile).

Please find the code below-

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;

public class MobileBrowser {
    public static void main(String[] args) throws InterruptedException, IOException {
        System.out.println("program start");
        FirefoxProfile ffprofile = new FirefoxProfile();
        ffprofile.setPreference("general.useragent.override", "iPhone"); //this will change the user agent which will open mobile browser
        WebDriver driver = new FirefoxDriver(ffprofile);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().setSize(new Dimension(400,800)); //just to change the window size so that it will look like mobile ;)
        driver.get("http://www.fabfurnish.com/");
       
        //lets try sign in
        driver.findElement(By.id("nav-menu")).click(); //click on right corner bar icon
        driver.findElement(By.xpath("//a[@href='/customer/login']/img")).click(); //click on login
        driver.findElement(By.id("m_log_button")).click();
        driver.findElement(By.id("LoginForm_email")).sendKeys("yourEmailId@gmail.com");
        driver.findElement(By.id("LoginForm_password")).sendKeys("yourPassword");
        driver.findElement(By.xpath("//input[@value='Login']")).click();
        System.out.println("End");
    }
}

Note- To write the xpath, you can use simply use as usual Firepath with Firebug only. Here you can find the how to change the user agent manually in firefox ?
After changing the user-agent when you will open the website, it will open as in mobile browser and now you can use firebug/firepath as usual.

How to change the user agent manually in firefox ?

The User Agent Switcher extension adds a menu inside Tools option of the toolbar menu to switch the user agent of a browser. The extension is available for Firefox and will run on any platform i.e. this browser supports including Windows, OS X, Linux and Mac. 

Please find the link below to download the user agent switcher-
user-agent-switcher

How to use- After changing the user agent, reload the page or open the url in new tab.