繁体   English   中英

关于Android上的Appium自动化的问题

[英]Questions on Appium Automation on Android

问题:

1.App没有任何Content-desc,在这种情况下我应该使用什么? 调用元素ex:有一个按钮,当我从UIautomator工具检查元素时需要点击该按钮,它在content-desc中没有任何内容,还有什么我可以认为是识别该元素的最佳方法

例如:Resource-id:au.com.carsguide:id / search_btn Content-desc-空白

如果我使用Resource-id,appium不会选择该值,它只能是“ search_btn”,然后它将选择该值,为什么完整的程序包名称不支持resource-id?

  1. 黑白AndroidDriver和RemoteDriver有什么区别,我应该使用哪一种?如果使用RemoteDriver就像我们需要运行Selenium服务器?

3.我能够在实际设备上运行appium自动化,有谁能帮助我在android仿真器上运行自动化? 怎么做?

使用AndroidDriver时看到以下错误:

FAILED CONFIGURATION: @BeforeClass setUpBeforeClass
java.lang.Error: Unresolved compilation problems: 
The return types are incompatible for the inherited methods    FindsByAccessibilityId<WebElement>.findElementsByAccessibilityId(String),   AppiumDriver<RequiredElementType>.findElementsByAccessibilityId(String)
The return types are incompatible for the inherited methods   FindsByCssSelector.findElementsByCssSelector(String),   AppiumDriver<RequiredElementType>.findElementsByCssSelector(String)
The return types are incompatible for the inherited methods  WebDriver.findElements(By), AppiumDriver<RequiredElementType>.findElements(By)
The return types are incompatible for the inherited methods  FindsById.findElementsById(String),  AppiumDriver<RequiredElementType>.findElementsById(String)
The return types are incompatible for the inherited methods  FindsByLinkText.findElementsByLinkText(String),  AppiumDriver<RequiredElementType>.findElementsByLinkText(String)
The return types are incompatible for the inherited methods  FindsByXPath.findElementsByXPath(String),  AppiumDriver<RequiredElementType>.findElementsByXPath(String)
The return types are incompatible for the inherited methods  FindsByName.findElementsByName(String),  AppiumDriver<RequiredElementType>.findElementsByName(String)
The return types are incompatible for the inherited methods  FindsByTagName.findElementsByTagName(String),  AppiumDriver<RequiredElementType>.findElementsByTagName(String)
The return types are incompatible for the inherited methods  FindsByLinkText.findElementsByPartialLinkText(String),  AppiumDriver<RequiredElementType>.findElementsByPartialLinkText(String)
  1. 少即是好。 为什么要使用包名访问ID? 顺便说一下,您已经在功能中指定了程序包名称,因此appium在内部使用ID和程序包名称来查找应用程序组件。 如果组件属于其他应用程序,则需要提供ID及其包名称。

  2. 您无需运行Selenium服务器,而需要运行Appium Server。 AndroidDriver扩展了抽象AppiumDriver,它又扩展了DefaultGenericMobileDriver(这也是抽象的),该抽象类扩展了RemoteWebDriver。

因此,AndroidDriver比RemoteWebDriver具有更多的API /功能。 因此,您可以选择AndroidDriver。

    • 您可以使用Genymotion模拟器
    • 运行模拟器时,在终端中执行命令adb devices以获取模拟器ID
    • 将模拟器ID 192.168.56.101:5555用于deviceNameudid appium功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM