我在一个由stenciljs和ionic组成的混合应用程序中使用Android上的Appium。
我正在使用Appium服务器GUI,这些是我的功能:
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "11");
caps.setCapability("deviceName", "emulator-5558");
caps.setCapability("automationName", "UiAutomator2");
caps.setCapability("udid", "emulator-5558");
caps.setCapability("app",androidAppPath);
driver = new AndroidDriver(appiumUrl, caps);
我的一项测试是检查特定输入字段中的文本是否等于预期的文本
要访问我使用的输入文本:
WebElement input = webElement.findElement(inputBy);
input.getAttribute("value")
我仔细检查了输入字段是否为正确的网络元素。
我的问题是,如果我在Android模拟器中运行测试,我可以从输入字段中获得文本,所以测试会通过。
但如果我在Android设备上运行测试,input.getAttribute("value")
将始终返回null
。
我的理解是ChromeDriver嵌入在Appium中,所以如果我在模拟器或设备中运行测试,功能应该不会有任何差异。
此外,我的应用程序将android.webkit.WebView
上的setWebContentsDebuggingEnabled
属性设置为真正的
我是不是遗漏了什么?
问题似乎与"w3c";
所以我不得不用停用这个功能
caps.setCapability("appium:chromeOptions", ImmutableMap.of("w3c", false));