学过selenium的朋友再来看appium,基本上就是一个环境折腾问题,还有一个就是初始化Driver的问题,以下代码是初始化Driver
WebDriver driver = null; // 驱动对象 String apkName = "524d.apk"; // 安卓的安装包,被测软件 String platformVersion = "23";// 安卓模拟器的版本,appium控制台有提示 String serverURL = "http://127.0.0.1:4723/wd/hub";// appium测试服务的地址,这个在appium启动控制台有显示 // ================================================================== File classpathRoot = new File(System.getProperty("user.dir"));// 获得项目路径 File appDir = new File(classpathRoot, "apps");// 获得APK所在文件夹名称 File app = new File(appDir, apkName);// 获得APK文件 // 新建一个DesiredCapabilities对象, 负责启动服务端时的参数设置。 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); // 指定浏览器的名字,我们测试的是APK所以没有浏览器,故而为空; capabilities.setCapability("platformName", "Android"); // 指定平台,为安卓 capabilities.setCapability("deviceName", "android Emulator"); // 指定设备,"Android // Emulator"这个属性作者认为是“安卓设备即可” capabilities.setCapability("platformVersion", platformVersion); // 指定版本 capabilities.setCapability("app", app.getAbsolutePath()); // 指定需要测试的APK,也就是需要安装的APK文件; // 核心关键步骤,创建驱动,指定服务地址,和初始化信息; try { driver = new AndroidDriver(new URL(serverURL), capabilities); wait = new WebDriverWait(driver, 30, 60); } catch (MalformedURLException e) { e.printStackTrace(); }
后续的使用与selenium无差异,哦,对了,maven依赖包如下:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> <version>2.48.2</version> </dependency> <!-- appium/java-client --> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>4.1.2</version> </dependency>