无法在 Appium + Robot Framework 中使用 Xpath,其中在 Appium Log 中显示的错误消息为 contextId: 'multiple: true'
Couldn't able to use Xpath in Appium + Robot Framework where in Appium Log its displaying error message as contextId: ' multiple: true'
结合 Appium 和 Selenium2Library/SeleniumLibrary 使用 Robot Framework。如果我尝试 运行 我的脚本使用一些 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 日志:
[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' 和 @attribute='value']
终于找到了这个错误信息的答案。问题是开发团队正在为他们的 React Native 代码中的 UI 元素维护公共变量名称以重用它,并克服此错误是添加 UiAutomator2 功能,如下所示:
对于 Java 使用 Appium(Appium Java 客户端)
capabilities.setCapability("automationName", "UiAutomator2");
对于机器人框架(机器人 AppiumLibrary)
automationName=UiAutomator2 (inside open application keyword)
为什么会出现这个错误?如果我们的 device/emulator OS 版本 >= 6,Appium 不支持 UiAutomator 自动化。我使用的是 7+。所以,我切换到 UiAutomator2 并确保 JAVA_HOME & ANDROID_HOME 设置正确。
结合 Appium 和 Selenium2Library/SeleniumLibrary 使用 Robot Framework。如果我尝试 运行 我的脚本使用一些 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 日志:
[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' 和 @attribute='value']
终于找到了这个错误信息的答案。问题是开发团队正在为他们的 React Native 代码中的 UI 元素维护公共变量名称以重用它,并克服此错误是添加 UiAutomator2 功能,如下所示:
对于 Java 使用 Appium(Appium Java 客户端)
capabilities.setCapability("automationName", "UiAutomator2");
对于机器人框架(机器人 AppiumLibrary)
automationName=UiAutomator2 (inside open application keyword)
为什么会出现这个错误?如果我们的 device/emulator OS 版本 >= 6,Appium 不支持 UiAutomator 自动化。我使用的是 7+。所以,我切换到 UiAutomator2 并确保 JAVA_HOME & ANDROID_HOME 设置正确。