Problem
We want to run our test in a iPhone simulator. The iphone simulator comes with Xcode which is available for the Mac operating systems. This recipe will show us how we can run our WebDriver tests in a iphone simulator.
Prerequisites
We need to download Xcode from the following location: http://developer.apple.com/iphone
The iPhone WebDriver application is not available from the App Store, therefore we need to check-out the code and build it manually. We can do the check-out by entering the following terminal command: svn checkout http://selenium.googlecode.com/svn/trunk/ selenium-read-only
More information on SVN checkouts: http://www.linuxfromscratch.org/blfs/edguide/chapter03.html
Solution
- Open the project
selenium-read-only/iphone/iWebDriver.xcodeprojin Xcode. - Double-click on the project and set the build configuration to the latest version of the iPhone Simulator, by using the drop-down box in the top left corner.
- Click on Run (play button). After compiling, the iphone simulator should appear and the iWebDriver app will be installed in it.
- Now we can use the IPhoneDriver in our tests.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.iphone.IPhoneDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MobileIphoneSimulator {
private static WebDriver driver;
@BeforeClass
public void setUp() throws Exception {
driver = new IPhoneDriver();
driver.get("http://selenium.polteq.com/prestashop/");
}
@AfterClass
public void tearDown() {
driver.close();
driver.quit();
}
@Test
public void measurePerformance() throws InterruptedException {
Thread.sleep(1500);
driver.findElement(By.cssSelector("input#search_query_top")).sendKeys("ipod nano");
driver.findElement(By.cssSelector("input[name='submit_search']")).click();
String searchHeader = driver.findElement(By.cssSelector("H1")).getText().toLowerCase();
Assert.assertTrue(searchHeader.contains("ipod nano"));
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.iphone.IPhoneDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MobileIphoneSimulator {
private static WebDriver driver;
@BeforeClass
public void setUp() throws Exception {
driver = new IPhoneDriver();
driver.get("http://selenium.polteq.com/prestashop/");
}
@AfterClass
public void tearDown() {
driver.close();
driver.quit();
}
@Test
public void measurePerformance() throws InterruptedException {
Thread.sleep(1500);
driver.findElement(By.cssSelector("input#search_query_top")).sendKeys("ipod nano");
driver.findElement(By.cssSelector("input[name='submit_search']")).click();
String searchHeader = driver.findElement(By.cssSelector("H1")).getText().toLowerCase();
Assert.assertTrue(searchHeader.contains("ipod nano"));
}
}
|
