- Login to your AstroFarm account
- Take Remote of an iOS device
- Get the Automation URL of the specific iOS device as shown in the image below
4. Add URL in Appium Script Desired Capabilities as Appium Server URL
URL(“<Paste the AstroFarm automation URL here>/wd/hub”)
Notes:
- Make sure your IPA file has developer signatures that include the UDID of the test device.
- iOS Automation support is added onwards AstroFarm Console v0.45.25.
- If we release/free up the iOS during automation then automation will not work.
Demo Appium iOS automation Code using Java + TestNg
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.remote.MobileCapabilityType;
public class BaseTest {
public static IOSDriver driverAppium;
public static String deviceUDID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //This value we can get it from xcode >> window >> Devices and Simulators
public static String xcodeOrgId="xxxxxxxxxx"; //specify Apple Developer Team ID, you can find it on the Apple Developer Portal -> Account -> Membership -> Team ID
public static String automationURL="http://astrofarm.42gears.com:20007/wd/hub";
@BeforeClass
public void setUp() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName","iOS");
capabilities.setCapability("automationName","XCUITest");
capabilities.setCapability("platformVersion","15.3");
capabilities.setCapability("deviceName","iPad mini 4");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,"safari");
capabilities.setCapability("udid",deviceUDID);
capabilities.setCapability("xcodeOrgId", xcodeOrgId);
capabilities.setCapability("xcodeSigningId", "iPhone Developer");
capabilities.setCapability("usePrebuiltWDA", "true");
capabilities.setCapability("skipServerInstallation", true);
capabilities.setCapability(MobileCapabilityType.FULL_RESET, true);
driverAppium = new IOSDriver<>(new URL(automationURL), capabilities); //Here we add the AstroFarm Automation URL
driverAppium.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
@AfterClass
public void tearDown(){
try {
driverAppium.quit();
}
catch(Exception e) {
}
}
@Test(priority = 1, invocationCount =2 )
public void demoCode() throws InterruptedException, IOException {
driverAppium.get("https://google.com");
}
}
Was this helpful?
YesNo