Appium环境搭建及第一次运行demo过程遇到很多问题
需要下载的jar包:
selenium类库: http://docs.seleniumhq.org/download/ ,我用的java的; java-client:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.appium%22%20AND%20a%3A%22java-client%22
appium下载:
因为通过npm 安装 appium 99%的人都应该会遇到很多莫名其妙的错误,所以我直接下载了appium安装包 https://bitbucket.org/https://bitbucket.org/appium/appium.app/downloads/appium/appium.app/downloads/
Eclipse里面新建Java项目,目录如下 src下面放我们的测试代码 libs下面放我们下载的jar包 apps下面有存放我们测试的安装包
然后右键》Run As Junit Test就可以了
记得在Run之前一定要先连接模拟器或者真机,再launch appium
上面红色框内设置sever地址和端口,然后点击右上角的launch按键,启动appium服务
当然测试移动设置需要安装 Android sdk jdk 配置Android sdk环境变量,java环境变量,及测试IOS需要Xcode
附代码
package test.java;
import java.io.File;
import java.net.URL;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
public class AppiumTest {
private AndroidDriver driver;
@Before
public void setUp() throws Exception {
// 设置apk的路径
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "apps");
File app = new File(appDir, "ContactManager.apk");
// 设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator");
// 设置安卓系统版本
capabilities.setCapability("platformVersion", "6.0");
// 设置apk路径
capabilities.setCapability("app", app.getAbsolutePath());
// 设置app的主包名和主类名
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager");
// 初始化
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
@Test
public void addContact() {
// WebElement el = driver.findElement(By.name("Add Contact"));
// el.click();
MobileElement makeTextLocartor = (MobileElement) driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Add Contact\")");
makeTextLocartor.click();
List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
textFieldsList.get(0).sendKeys("feimaoyuzhubaobao");
textFieldsList.get(2).sendKeys("forever together");
driver.swipe(100, 500, 100, 100, 2);
MobileElement save = (MobileElement)driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Save\")");
save.click();
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}