getAttribute( "value" ) 在模拟器中工作,但它在设备中返回 null



我在一个由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));

相关内容

  • 没有找到相关文章

最新更新