Appium+java 获取元素状态
程序员文章站
2023-02-02 10:02:49
元素的属性我们经常会用到,当定位到某个元素后,有时会需要用到这个元素的text值、className、resource-id、checked等。 一般标准的属性我们都可以通过get_attribute(“属性名称”)来获取,我们来看看下面截图的元素都是怎么获取的吧。从上到下来看。 我们从text开始 ......
元素的属性我们经常会用到,当定位到某个元素后,有时会需要用到这个元素的text值、classname、resource-id、checked等。
一般标准的属性我们都可以通过get_attribute(“属性名称”)来获取,我们来看看下面截图的元素都是怎么获取的吧。从上到下来看。
我们从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。都可以通过这个方法来获取,就不一一列出了。这里的第二种方法经常用到,重点掌握!!
声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。
推荐阅读