无法在 Appium + Robot Framework 中使用 Xpath,而在 Appium 日志中,它以上下文 ID 的形式显示错误消息:"多个:true"



使用机器人框架与appium和selenium2library/seleniumlibrary的组合。如果我尝试使用一些XPath定位器来运行脚本,例如

 AppiumLibrary.Click Element                       xpath=//android.widget.TextView[@text='Site Control'] 

在关键字文件中,然后在错误消息以下。

错误消息:

Finding '//android.widget.EditText[@index='4']' using 'XPATH' with the contextId: '' multiple: true

appium logs:

 [debug] [35m[AndroidBootstrap][39m [BOOTSTRAP LOG] [debug] Got command of type ACTION
 [debug] [35m[AndroidBootstrap][39m [BOOTSTRAP LOG] [debug] Got command action: find
 [debug] [35m[AndroidBootstrap][39m [BOOTSTRAP LOG] [debug] Finding '//android.widget.EditText[@index='4']' using 'XPATH' with the contextId: '' multiple: true

机器人脚本:

 Click on Site Control and Create Case
      AppiumLibrary.Click Element                       xpath=//android.widget.TextView[@text='Site Control']
      sleep                                             ${timeout}
      AppiumLibrary.click element                       xpath=//android.widget.EditText[@index='4']
      sleep                                             ${timeout}
      AppiumLibrary.input text                          xpath=//android.widget.EditText[@text='Intallationid']   site212

这意味着您的定位器并非那么唯一。请尝试添加更多唯一的属性,例如///android.widget.edittext [ @index='4'and @attribute ='value']

最后,找到了此错误消息的答案。问题是开发团队正在维护其反应本机代码中的UI元素的通用变量名称以重复使用它,并且从此错误中克服了uiautomator2功能,如下所示:

适用于Appium(Appium Java客户端)的Java

capabilities.setCapability("automationName", "UiAutomator2");

用于机器人框架(机器人appiumlibrary)

automationName=UiAutomator2 (inside open application keyword)

为什么此错误会发生?如果我们的设备/仿真器OS版本为> = 6,Appium不支持UIAUTOMATOR自动化。我在使用7 。因此,我已切换到uiautomator2,并确保java_home&Android_home设置正确。

相关内容

最新更新