使用机器人框架与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设置正确。