Appium之定位页面元素

2017-09-25  白云 

一、findElementByName


 
WebElement el = driver.findElementByName("排行榜");
尝试先用view显示的文本作为name看是否能获取到该控件,比如上面实例中的"排行榜"其实是textview的text,当做name是可以获取到的。
如果不行的话,就放弃用name。
二、findElementsByClassName
 



ListtextFieldsList = driver.findElementsByClassName("android.widget.TextView");



textFieldsList.get(3).click();
使用ClassName一般获得的view都不一止一个,所以应该需要遍历一遍得到的views,然后通过index获得目标控件。
三、findElementById
 



ById在android上是控件的resource id
WebElement el = driver.findElementById("search");
四、findElementByAccessibilityID
 
 
ByAccessibilityID在android上等同于控件的content-desc
 
el3 = driver.findElementByAccessibilityId("转到上一层级");
五、findElementByXpath
 
WebElement el = driver.findElementByXPath("//android.widget.TextView[contains(@text,'新品榜')]");

六、定位元素遇到的问题
未设置等待时间,未找到元素前就执行操作,导致报错,解决办法:
线程休眠
try {
     Thread.sleep(6000);
 } catch (InterruptedException e) {
     e.printStackTrace();
 } 
参考文章:
http://www.cnblogs.com/alwayswyy/p/4988545.html 
http://doc.okbase.net/zhubaitian/archive/103376.html 

 
 



60°|607 人阅读|0 条评论
登录 后发表评论