找不到appium android驱动程序的findelementbyandroiduiautomator方法
Posted
技术标签:
【中文标题】找不到appium android驱动程序的findelementbyandroiduiautomator方法【英文标题】:Cannot find findelementbyandroiduiautomator method for appium android driver 【发布时间】:2019-11-04 17:15:39 【问题描述】:我正在使用带有 mobileElement 类型转换的 android 驱动程序,但在我的方法列表中找不到 findelementbyandroiduiautomator 方法。所有其他方法都没有检查我的应用程序上的任何元素,这看起来是我最后的手段。
driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), cap);
我尝试使用该方法时遇到的编译器错误是:findelementbyandroiduiautomator method not found for driver。
【问题讨论】:
您为什么要尝试使用该方法?为什么不只是.findElement(By.xpath...
等。你最初是如何声明驱动程序的(在实例化之前)。
【参考方案1】:
如果您使用的是 Appium Java 客户端版本 6 以上,请尝试以下代码
AndroidDriver driver=new AndroidDriver(new URL(""), cap);
driver.findElement(MobileBy.AndroidUIAutomator("")).click();
【讨论】:
【参考方案2】:如果您使用 WebDriver 或 AppiumDriver 的引用变量,则需要将驱动程序向下转换为 AndriodDriver 才能访问 findElementByAndroidUIAutomator() 方法。因为这个方法是 AndriodDriver 特有的,在父类或接口中不可用。 例如:
WebDriver driver = = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
((AndroidDriver) driver).findElementByAndroidUIAutomator("some expression").click();
注意:如果直接使用 AndroidDriver 的引用,则不需要这种向下转换。例如:
AndroidDriver<MobileElement> driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
driver.findElementByAndroidUIAutomator("some expression").click();
【讨论】:
【参考方案3】:因为 findElementByAndroidUIAutomator 是 Java 8 以后支持的默认方法。请检查项目中的 Java 版本。将其更改为 1.8+。
Right click on the project -> Properties -> check JRE library version and Double click on JRE System library to change -> Change JRESE-1.8
您将获得带有驱动程序对象的 findElementByAndroidUIAutomator。
【讨论】:
以上是关于找不到appium android驱动程序的findelementbyandroiduiautomator方法的主要内容,如果未能解决你的问题,请参考以下文章
原始错误:在 ["/usr/local/share/android-sdk/platform-tools/aapt"] Appium - Eclipse 中找不到“aapt”
在移动原生应用程序测试中:使用 Appium 时如何模拟后端?
Appium 找不到findElementByAndroidUIAutomator方法问题
Appium 错误 Xcode 找不到匹配“com.facebook.WebDriverAgentRunner”的配置文件