import java.io.File;
import java.net.URL;
import java.util.List;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
//import org.testng.Assert;
//import org.testng.annotations.AfterMethod;
//import org.testng.annotations.BeforeMethod;
//import org.testng.annotations.Test;
public class TestRecipe {
public WebDriver driver = null;
@Before
public void setUp() throws Exception {
// set up appium
File appDir = new File("/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator");
File app = new File(appDir, "Recipe.app");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "iOS");
capabilities.setCapability(CapabilityType.VERSION, "6.1");
capabilities.setCapability(CapabilityType.PLATFORM, "Mac");
capabilities.setCapability("app", app.getAbsolutePath());
driver = new RemoteWebDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
}
/*
@AfterMethod
public void tearDown() throws Exception {
driver.quit();
}*/
@Test
public void testAddRecipes() throws InterruptedException {
driver.findElement(By.name("Add")).click();
String recipeName = "Pizza";
String recipeDescription = "My lovable dish";
String preparationTime = "1 hour";
driver.findElement(By.name("Add")).click();
driver.findElement(By.xpath("//textfield[1]")).sendKeys(recipeName);
driver.findElement(By.name("Save")).click();
driver.findElement(By.name("Edit")).click();
driver.findElement(By.xpath("//tableview[1]/textfield[2]")).sendKeys(recipeDescription);
driver.findElement(By.xpath("//tableview[1]/textfield[3]")).sendKeys(preparationTime);
driver.findElement(By.name("choosePhoto")).click();
driver.findElement(By.xpath("//tableview[1]/cell[1]/text[1]")).click();
driver.findElement(By.xpath("//tableview[1]/cell[1]/image[1]")).click();
driver.findElement(By.name("Done")).click();
driver.findElement(By.xpath("//navigationBar[1]/button[1]")).click();
// Verify the presence of added recipe.
List<WebElement> recipesDetails = driver.findElements(By.xpath("//tableview[1]/cell"));
//System.out.println("No. of Recipes: "+recipesDetails.size());
boolean result = false;
for(WebElement recipeDetails : recipesDetails) {
//System.out.println("details: "+recipeDetails.getAttribute("name"));
if(recipeDetails.getAttribute("name").equals(recipeDescription+", "+preparationTime+", "+recipeName)) {
result = true;
}
}
//Assert.assertTrue(result, "Recipe is not present");
driver.quit();
}
}
info: Welcome to Appium v0.7.3 (REV 120bb6813272efc128276bd212202e2cda0dea14)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: socket.io started
info: Using local app from desiredCaps: /Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app
info: Creating new appium session 68a84fbf-1329-4fa7-90c2-c4206b3091ca
info: Cleaned up instruments socket /tmp/instruments_sock
info: Forcing use of iphone
info: Overriding session id with ,
info: Responding to client with error: {"status":6,"value":{"message":"A session is either terminated or not started (Original error: ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist')","errno":34,"code":"ENOENT","path":"/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist","origValue":"ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist'"},"sessionId":null}
POST /wd/hub/session 500 31ms - 568
info: Clearing out appium devices
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {"desiredCapabilities":{"platform":"Mac","app":"/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app","browserName":"iOS","version":"6.1"}}
error: Could not parse plist file at /Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist
error: Failed to start an Appium session, err was: Error: ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist'
debug: Appium request initiated at /wd/hub/session
info: Using local app from desiredCaps: /Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app
debug: Request received with params: {"desiredCapabilities":{"platform":"Mac","app":"/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app","browserName":"iOS","version":"6.1"}}
error: Could not parse plist file at /Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist
error: Failed to start an Appium session, err was: Error: ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist'
info: Creating new appium session 58ecd8a6-69a9-48b5-84c5-c2cd738f2d89
info: Cleaned up instruments socket /tmp/instruments_sock
info: Forcing use of iphone
info: Overriding session id with ,
info: Responding to client with error: {"status":6,"value":{"message":"A session is either terminated or not started (Original error: ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist')","errno":34,"code":"ENOENT","path":"/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist","origValue":"ENOENT, open '/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist'"},"sessionId":null}
POST /wd/hub/session 500 5ms - 568
info: Clearing out appium devices
/Users/broadsoft/Documents/testing/iPhoneCoreDataRecipes/build/Release-iphonesimulator/Recipe.app/Info.plist