APP元素定位和元素操作
1.APP 定位元素需要用到UIautomator
打开:D:\Andriod_SDK\tools\uiautomatorviewer.bat
打开模拟器-》驾考宝典.apk,一会进行元素定位
脚本:
package com.test.firstAppium;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
public class AppiumTest001 {
//声明全局变量
public static AndroidDriver<WebElement> androidDriver;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
//1.創建配置對象
DesiredCapabilities desiredCapabilities=new DesiredCapabilities();
//2.添加配置
//deviceName:可以找到我们测试的设备
desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");
//platformName:测试平台android or IOS
desiredCapabilities.setCapability("platformName", "Android");
//appPackage:找到测试 APP:aapt dump badging.....
desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android");
//automationName:uiautomator2来解决输入框输入不了数据
//自动化引擎
//desiredCapabilities.setCapability("automationName", "uiautomator2");
//appActivity:测试app入口
desiredCapabilities.setCapability("appActivity","com.handsgo.jiakao.android.splash.Login");
//创建驱动
//传入2个参数,第一个参数:Appium通讯地址,第二个参数:配置对象
androidDriver = new AndroidDriver<WebElement>
(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);
testJiakao();
}
//自定义方法
public static void testJiakao() throws InterruptedException {
Thread.sleep(20000);
//选择同意
//1.找到定位城市文本,并且点击
androidDriver.findElementById("com.handsgo.jiakao.android:id/cityTv").click();
//2.输入城市:上海
// androidDriver.findElementById("com.handsgo.jiakao.android:id/edt_search_q").sendKeys("上海");
//3.输入框无法识别
androidDriver.findElementByXPath("//android.widget.TextView[@text='北京']").click();
//.findElementByXPath("//android.widget.TextView[@text='上海']").click();
//4.选择性别
androidDriver.findElementById("com.handsgo.jiakao.android:id/femaleTv").click();
//5.选择驾校包名状态-未报名
androidDriver.findElementById("com.handsgo.jiakao.android:id/unRegisterTv").click();
//6.选择当前类型:小车
androidDriver.findElementById("com.handsgo.jiakao.android:id/itemCar").click();
//7.点击下一步
androidDriver.findElementById("com.handsgo.jiakao.android:id/okBtn").click();
}
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
public class AppiumTest001 {
//声明全局变量
public static AndroidDriver<WebElement> androidDriver;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
//1.創建配置對象
DesiredCapabilities desiredCapabilities=new DesiredCapabilities();
//2.添加配置
//deviceName:可以找到我们测试的设备
desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");
//platformName:测试平台android or IOS
desiredCapabilities.setCapability("platformName", "Android");
//appPackage:找到测试 APP:aapt dump badging.....
desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android");
//automationName:uiautomator2来解决输入框输入不了数据
//自动化引擎
//desiredCapabilities.setCapability("automationName", "uiautomator2");
//appActivity:测试app入口
desiredCapabilities.setCapability("appActivity","com.handsgo.jiakao.android.splash.Login");
//创建驱动
//传入2个参数,第一个参数:Appium通讯地址,第二个参数:配置对象
androidDriver = new AndroidDriver<WebElement>
(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);
testJiakao();
}
//自定义方法
public static void testJiakao() throws InterruptedException {
Thread.sleep(20000);
//选择同意
//1.找到定位城市文本,并且点击
androidDriver.findElementById("com.handsgo.jiakao.android:id/cityTv").click();
//2.输入城市:上海
// androidDriver.findElementById("com.handsgo.jiakao.android:id/edt_search_q").sendKeys("上海");
//3.输入框无法识别
androidDriver.findElementByXPath("//android.widget.TextView[@text='北京']").click();
//.findElementByXPath("//android.widget.TextView[@text='上海']").click();
//4.选择性别
androidDriver.findElementById("com.handsgo.jiakao.android:id/femaleTv").click();
//5.选择驾校包名状态-未报名
androidDriver.findElementById("com.handsgo.jiakao.android:id/unRegisterTv").click();
//6.选择当前类型:小车
androidDriver.findElementById("com.handsgo.jiakao.android:id/itemCar").click();
//7.点击下一步
androidDriver.findElementById("com.handsgo.jiakao.android:id/okBtn").click();
}
}
运行脚本的时候,打开Appium和模拟器,uiautomator定位,但是这里脚本运行行没有识别搜索框,所以用XPath定位