欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Appium+java 获取元素状态

程序员文章站 2023-02-02 10:02:49
元素的属性我们经常会用到,当定位到某个元素后,有时会需要用到这个元素的text值、className、resource-id、checked等。 一般标准的属性我们都可以通过get_attribute(“属性名称”)来获取,我们来看看下面截图的元素都是怎么获取的吧。从上到下来看。 我们从text开始 ......
元素的属性我们经常会用到,当定位到某个元素后,有时会需要用到这个元素的text值、classname、resource-id、checked等。 
一般标准的属性我们都可以通过get_attribute(“属性名称”)来获取,我们来看看下面截图的元素都是怎么获取的吧。从上到下来看。
Appium+java 获取元素状态

我们从text开始讲,我们先通过xpath方式定位到这个元素

public class uidemotest {
private androiddriver driver;

@before
public void setup() throws exception {
//设置并启动“app”
file classpathroot = new file(system.getproperty("user.dir"));
file appdir = new file(classpathroot, "apps");
file app = new file(appdir, "com.sdu.doo.gsui.apk");
desiredcapabilities capabilities = new desiredcapabilities();
capabilities.setcapability("noreset", true);//不需要每次安装app
capabilities.setcapability("devicename", "85gbbmd22ajy");
capabilities.setcapability("automationname", "appium");
capabilities.setcapability("platformname", "android");
capabilities.setcapability("platformversion", "5.1");
capabilities.setcapability("autograntpermissions","ture");//允许在手机上安装该app
capabilities.setcapability("apppackage", "com.sdu.doo.gsui");
capabilities.setcapability("appactivity", "com.doo.driver.sdk.launcheractivity");
driver = new androiddriver(new url("http://127.0.0.1:4723/wd/hub"), (capabilities) capabilities);

}





@after
public void teardown() throws exception {
}

@test
public void login () throws interruptedexception {
// cleartext(by.xpath());
driver.findelement(by.xpath("//android.widget.edittext[@resource-id='com.sdu.didi.gsui:id/et_phone' and @text = '请输入手机号码']")).click();
driver.presskeycode(8);driver.presskeycode(8);driver.presskeycode(7);driver.presskeycode(7);driver.presskeycode(7);
driver.presskeycode(7);driver.presskeycode(7);driver.presskeycode(7);driver.presskeycode(13);driver.presskeycode(15);
driver.presskeycode(8);
thread.sleep(1000);
// webelement element = (webelement) by.xpath("//android.widget.checkbox[@resource-id='com.sdu.didi.gsui:id/cb_law' and @checked = 'false']");
// webelement element1 = (webelement) by.id("com.sdu.didi.gsui:id/cb_law");
webelement element = driver.findelement(by.xpath("//android.widget.checkbox[@text = '同意']"));
system.out.println(element.getattribute("checked"));
if (element.getattribute("checked") == "false"){
driver.findelement(by.id("com.sdu.didi.gsui:id/cb_law") ).click();//同意
}
driver.findelement(by.id("com.sdu.didi.gsui:id/btn_next")).click();//下一步
}
依次获取元素状态的方法有:

element.getattribute("checked")
element.getattribute("text")
element.getattribute("resource-id")
element.getattribute("name")  name是获取content-desc的值
element.size()
element.location()
 
以此类推...

特注意一点:元素里只要属性值是布尔型的,即false or true。都可以通过这个方法来获取,就不一一列出了。这里的第二种方法经常用到,重点掌握!!


声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。