环境:appium desktop1.4.0 appium 1.7.2 Java-client 4.1.2 selenium-java-2.53.1 jdk1.8.0
1)我在如下的ui自动化测试操作步骤中碰到无法定位element的问题.
进入如下的界面:
什么都不输入,弹出如下的消息框:
点击弹出框上的"确定"按钮,弹出框消失,这时再调用findelementbyid方法,获取登录界面上的元素,总是无法定位。
log如下:
org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 44 milliseconds
2)如果进入前面的登录界面,不点登录按钮,而是直接调用findelementbyid方法获取客户号,密码编辑框进行自动输入,是可以定位到这两个编辑框控件,这个页面上其它element也是可以找到。
经过分析,最终解决问题如下, 在 driver的初始化终设置,automationName的属性值为"uiautomator2"
capabilities.setCapability("automationName", "uiautomator2");
上面的问题得到解决。
问题原因appium 1.7.0以上支持uiautomator2, 对 uiautomator可能会有版本配合问题.