Appium Android 元素定位方法 原生+H5

1.定位元素应用元素


1.1通过id定位元素

Android里面定位的id一般为resrouce-id:


代码可以这样写:

WebElement element = driver.findElement(By.id("com.tencent.mm:id/do"));

或者:

driver.findElementById("com.tencent.mm:id/do")

下面的例子展示的是通过id定位到元素并点击:

@Test public void doClick() { //通过id查找元素 WebElement el = driver.findElement(By.id("com.tencent.mm:id/do")); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }


1.2通过name定位元素

一般text属性认为是name


@Test public void doClick() { //通过name查找元素 WebElement el = driver.findElement(By.name("昵称")); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }

1.3通过ClassName定位元素

classname指的是class属性


@Test public void doClick() { //通过classname查找元素 WebElement el = driver.findElement(By.ClassName("android.widget.TextView")); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }


1.4通过xpath定位

Appium对于xpath定位执行效率是比较低的,也就是说遇到xpath的定位代码的时候,执行比较慢。迫不得已的情况下尽量不用这个定位方式。


代码:

@Test public void doClick() { //通过xpath查找元素 WebElement el = driver.findElement(By.xpath("//android.widget.Button[@index='1']")); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }


1.5通过AccessibilityId定位元素

定位元素的方式和name,id一样。


定位方式:

findElement(By.AccessibilityId("sharebutton"))

代码如下:

@Test public void doClick() { //通过AccessibilityId查找元素 WebElement el = driver.findElementByAccessibilityId("sharebutton"); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }


1.6通过AndroidUiAutomator定位元素

AndroidUIAutomator是一个强有力的元素定位方式,它是通过android UIAutomator类库去找元素,定位方式:

findElement(By.AndroidUIAutomator(String UIAuto));

可以选择id,nameclassName,description作为传入的字符串

WebElement el = driver.findElementByAndroidUIAutomator("new UiSelector().resourceId(\"com.tencent.mm:id/do\")");

代码如下:

@Test public void doClick() { //通过AndroidUIAutomator查找元素 WebElement el = driver.findElementByAndroidUIAutomator("new UiSelector().description(\"sharebutton\")"); el.click(); //等待3s观察显示 try { Thread.sleep(3000); } catch(InterruptedException e) { e.orintStackTrace(); } }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以...
    涛b阅读 879评论 0 1
  • 由于appium是扩展了Webdriver协议,所以可以使用webdriver提供的方法,比如在处理webview...
    涛b阅读 1,166评论 0 0
  • 一、元素定位 使用 SDK自带的APP元素查看工具uiautomatorviewer来获取元素,方法如下: 1、将...
    井望阅读 1,777评论 0 1
  • 文/冯友兰 何谓“意义”?意义发生于自觉及了解;任何事物,如果我们对它能够了解,便有意义,否则便无意义;了解越多,...
    秦东魁阅读 463评论 0 1
  • 文//烛光 久慕高原淡水殊,痴心携友驾长途。 青山肥草滋睛绿,险路苍松醉意舒。 遥望远天蓝锦绕,俯临阔地碧波浮。 ...
    5937阅读 1,312评论 0 9

友情链接更多精彩内容