java - 我应该使用哪种方法(最快)来选择元素?

标签 java android ios selector appium

有很多不同的方法可以在驱动程序之间选择元素。我想知道哪一个最快且最适合 native 应用程序(iOS 和 Android)。

Appium Driver 类有:

findElementByAccessibilityId(String using)

Mobile 类有:

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

所以我猜测使用 UIAutomatorUIAutomation 速度更快,但 Android 2.3+ 需要 selendroid .

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

的示例

我发现 XPath 选择器存在一些问题。从我的角度来看,使用 findElement(By.name) 似乎非常简单。

最佳答案

How do you do and why? Can you provide me some examples for findElementByAndroidUIAutomator(String using) and findElementByIosUIAutomation(String using)

AndroidDriver driver = new AndroidDriver();
WebElement element = driver.findElementByAndroidUIAutomator("new UiSelector().resourceId(\"org.zwanoo.android.speedtest:id/upload\")");

其中“org.zwanoo.android.speedtest:id/upload”是包 ID 和元素 ID。您可以通过这种方式在 UiAutomatorviewer 或 Appium Inspector 中找到它。

关于java - 我应该使用哪种方法(最快)来选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547434/

相关文章:

java - Apache Spark - 将 JavaRDD 转换为 DataFrame,反之亦然,性能会下降吗?

java - 字符串格式在邮件发送中不起作用

安卓 SQL 错误

ios - 如何获取 HockeyApp 的唯一用户 ID?

ios - 获取 UIScrollView 中 View 的 y 位置

java - 将 Apache Cayenne 从 Oracle 移植到 PostgreSQL

java - 在多线程环境中,对象创建是 Java 的瓶颈吗?

android - 无法将 RecyclerView 添加到 API 级别 19

android - 使用 fragment 共享过渡时返回过渡无法正常工作

ios - 异步加载和 UITableView 的 -reloadData