Appium 获取元素控件及其属性

以上文为例  http://blog.sina.com.cn/s/blog_696665040101hj5y.html
先来分析下脚本

        WebElement el = driver.findElement(By.name("Add Contact"));
        //根据控件的name来获取控件
        el.click();
        //对控件执行点击操作
        List textFieldsList = driver.findElements(By.tagName("textfield"));
        //根据控件的 tagName来获取所有控件
        textFieldsList.get(0).sendKeys("Some Name");
//对页面上第一个textfield类型的 控件的赋值输入Some Name
        textFieldsList.get(2).sendKeys("[email protected]");
//对页面上第三个 textfield类型的 控件的 赋值 输入[email protected]
        driver.findElement(By.name("Save")).click();
         //对名为Save的控件执行点击操作

由此可见控件至少有tagName,name ,text 三个属性。

一、获取控件属性
1.获取控件类名
System.out.println("[Button Add Contact]Class: "+el .getClass());   
2.获取控件类型 
System.out.println("[Button Add Contact]TagName: "+el .getTagName());
3.获取控件的值
System.out.println("[Button Add Contact]Text: "+el .getText());
   
输出如下:
[Button Add Contact]Class: class org.openqa.selenium.remote.RemoteWebElement
[Button Add Contact]TagName: android.widget.Button
[Button Add Contact]Text: Add Contact

二、获取元素的方式
1.元素类型(tagname)
通过UI的控件类型
List textFieldsList = driver.findElements( By.tagName("textfield"));

注:在android下文本输入框的类型是EditText,而是上面举例写的是textfield,那是因为android / ios都要对与seleium都有一个元素映射,对于Android下的元素对应, 可以参考
https://github.com/appium/appium/blob/master/lib/devices/android/bootstrap/src/io/appium/android/bootstrap/AndroidElementClassMap.java

2.元素的位置(xpath)
具有一定约束的路径抽象标示, 基于XPath方式

3.元素的值(name)
driver.findElement( By.name("Save")).click();
通过元素的文本(text), 标签(label),描述信息( content‐desc) ,或者id标示来查找


4.元素的ID
driver.findElement( By.id("com.example.android.contactmanager:id/contactNameEditText")).getText()

你可能感兴趣的:(android自动化测试)