我正在使用带有mobileElement typecast的android驱动程序,但是在我的方法列表中找不到findelementbyandroiduiautomator方法。所有其他方法都没有检查我应用程序上的任何元素,这看起来像是我最后的手段。
driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), cap);
当我尝试使用该方法时,我得到的编译器错误是这样的:找不到驱动程序的findelementbyandroiduiautomator方法。
请尝试以下代码,它对我有用:
driver.findElement(new AppiumBy.ByAndroidUIAutomator("attribute("Value")")).click();
使用的是 Appium Java 客户端版本 6 以上,请尝试以下代码
AndroidDriver driver=new AndroidDriver(new URL(""), cap);
driver.findElement(MobileBy.AndroidUIAutomator("")).click();
如果您使用的是 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();
因为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。