ios自动化环境搭建参考如下两个路径;
https://www.cnblogs.com/we8fans/p/7384291.html
https://www.cnblogs.com/we8fans/p/10416904.html
一 配置启动项
public class Tester {
public static void main(String[] args) throws Exception {
// (1)、初始化配置对象保存我们的配置
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability(“platformName”, “iOS”);//必须
desiredCapabilities.setCapability(“bundleId”, “com.spdbdev.push.pufabank”);//必须
desiredCapabilities.setCapability(“xcodeSigningId”, “iPhone Developer”);
desiredCapabilities.setCapability(“automationName”, “XCUITest”);
desiredCapabilities.setCapability(“noReset”, true);
desiredCapabilities.setCapability("platformVersion", "11.4.1"); //必须
desiredCapabilities.setCapability("deviceName", "iPhone 7");
desiredCapabilities.setCapability("udid", "b0bc3aa752a947a1a9301553fdd8c6a97ce2dc35");//必须
desiredCapabilities.setCapability("wdaLocalPort", "8100");
desiredCapabilities.setCapability("xcodeOrgId", "824665BR43");
//打开模拟器(IOS设备)
URL remoteAddress = new URL("http://127.0.0.1:4723/wd/hub");
IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(remoteAddress, desiredCapabilities);
//元素定位和操作
// 软键盘是否显示
System.out.println(driver.isKeyboardShown());
//向上滑动 命令 mobile: swipe
direction :up,down,left,right,必需参数
Map<String, Object> params= new HashMap<String, Object>();
params.put("direction", "up");
driver.executeScript("mobile: swipe", params);
//采用webdriver的api
//1:id,iOS的元素是没有这个属性的,但是我们用name属性作为id使用
IOSElement element = driver.findElement(By.id("id_cell_action_sheet"));
element.click();
/ /2:name:一般和accessibility id值相同
IOSElement element = driver.findElementByName("id_cell_action_sheet");
element.click();
//3:className: 检查器中的type属性值
List<IOSElement> elements = driver.findElements(By.className("XCUIElementTypeCell"));
System.out.println(elements.size());
elements.get(1).click();
//4:xpath: appium对xpath的解析速度较慢
driver.findElement(By.xpath("//XCUIElementTypeCell[@name=\"id_cell_alert\"]")).click();
// 1:替代以前的name定位方式,推荐使用
// ios:name值
// Android:content-desc
driver.findElementByAccessibilityId("id_cell_action_sheet").click();
driver.findElement(MobileBy.AccessibilityId("id_cell_indicators")).click();
Thread.sleep(5000);
driver.quit();
}
}