我应该使用哪种方法(最快)来select元素?

那么有很多不同的方法来select驱动之间的元素。 我想知道哪一个是最快和最适合本机的应用程序(iOS和Android)。

有了Appium驱动程序类,有:

findElementByAccessibilityId(String using) 

移动课程有:

 findElement(org.openqa.selenium.By by) //with ById/Xpath/Name/ClassName... 

使用Android和iOS驱动程序类有:

 findElementByAndroidUIAutomator(String using) findElementByIosUIAutomation(String using) 

使用RemoteWebDriver类有:

 findElementById(); findElementByXPath(); findElementById(); //css, className etc... -> WebElement which can be cast in mobileElement 

所以我猜测使用selendroidselendroid更快,但Android 2.3+需要Android 2.3+

你怎么做,为什么? 你能否提供一些findElementByAndroidUIAutomator(String using)findElementByIosUIAutomation(String using)

我看到XPathselect器存在一些问题。 从我的angular度来看,使用findElement(By.name)似乎很简单。

你应该按照这个顺序:

IDNameClassNameXPath 。 无论什么首先使用它。 您也可以要求开发人员为每个被认为是最好的方法的元素添加唯一的ID。

那么,只要使用UiAutomator,UiAutomation(当然可以)(默认情况下,客户端库会这样做 – 对于Id / Name等),除了XPath更慢以外,所以在没有select时使用它。

我使用一个函数,它接受参数的stringselect器和每个types的自定义枚举(id,xpath,甚至自定义types为Android parentIdChildEditText -still使用UiAutomator-,等等…)

请参阅https://github.com/appium/java-client/issues/158