【问题标题】:Cannot find findelementbyandroiduiautomator method for appium android driver找不到appium android驱动程序的findelementbyandroiduiautomator方法
【发布时间】:2023-04-03 15:43:01
【问题描述】:

我正在使用带有 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... 等。你最初是如何声明驱动程序的(在实例化之前)。

标签: java android selenium mobile appium


【解决方案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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-16
        • 1970-01-01
        • 2019-04-30
        • 2020-10-15
        • 2014-10-21
        • 2014-08-22
        相关资源
        最近更新 更多