Showing posts with label how to test the mobile site using selenium ?. Show all posts
Showing posts with label how to test the mobile site using selenium ?. 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.