native app示例ContactsTest,下面是例子中的源代码,说一下在学习这个例子中遇到的一个问题,调用textFieldsList.get(0).sendKeys("曹氏集团")和textFieldsList.get(2).sendKeys("Some@Name.com")输入的内容总是不正确,于是加上了这2句话
//设置键盘
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
问题就解决了,希望大家在学习过程中能少走弯路。
package com.glen.demo;
import io.appium.java_client.AppiumDriver;
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 java.io.File;
import java.net.URL;
import java.util.List;
public class ContactsTest {
private AppiumDriver 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", "ZTE U9180"); //Android Emulator
//设置安卓系统版本
capabilities.setCapability("platformVersion", "4.3");
//设置apk路径
capabilities.setCapability("app", app.getAbsolutePath());
//设置键盘
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
//设置app的主包名和主类名
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager");
//初始化
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
@Test
public void addContact(){
WebElement el = driver.findElement(By.id("com.example.android.contactmanager:id/addContactButton"));
el.click();
List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
textFieldsList.get(0).sendKeys("曹氏集团");
textFieldsList.get(1).sendKeys("19874561221");
textFieldsList.get(2).sendKeys("Some@Name.com");
driver.swipe(100, 500, 100, 100, 2);
driver.findElementByName("Save").click();
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}