问题:
1.App 没有任何内容描述,在这种情况下我应该使用什么? 调用元素例如:有一个按钮,当我从UIautomator工具检查元素时需要点击该按钮,它在内容描述中没有任何内容,我还能考虑什么最好的方法来识别该元素
例如:资源 ID : au.com.carsguide:id/search_btn 内容描述 - 空白
如果我使用 Resource-id,appium 不会选择该值,它必须只是"search_btn"然后它选择值,为什么完整的包名称不支持资源 ID?
- b/w 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)
-
少即是好。为什么要访问带有包名称的 id?顺便说一下,您在功能中指定了包名称,因此 appium 在内部使用带有包名称的 id 来查找应用程序组件。如果组件属于其他应用程序,则需要提供带有其包名称的 id。
-
你不需要运行 Selenium 服务器,你需要运行 Appium Server。AndroidDriver 扩展了抽象 AppiumDriver,它扩展了 DefaultGenericMobileDriver(这也是抽象的),这个 abtract 类再次扩展了 RemoteWebDriver。
因此,AndroidDriver比RemoteWebDriver拥有更多的API/功能。所以你可以选择安卓司机。
-
- 您可以使用Genymotion模拟器
- 运行模拟器时,在终端中执行命令
adb devices
以获取模拟器 ID - 使用模拟器 ID
192.168.56.101:5555
实现deviceName
和udid
appium 功能