首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移到Cordova 3.6.3之后,不存在的对话框会阻止Android上的Appium测试

问迁移到Cordova 3.6.3之后,不存在的对话框会阻止Android上的Appium测试
EN

Stack Overflow用户
提问于 2015-01-20 20:29:59
回答 1查看 365关注 0票数 1

在从Cordova 3.4.0升级到Cordova 3.6.3之后,由于一个奇怪的错误,我的Appium测试无法继续。通过在Android上创建一个基本的基于web视图的应用程序,在测试开始一段时间后发布一个window.location.reload(),这个错误可以很容易地被复制。

评估问题

我可以评估这个问题是一个特殊的文件: cordova.js,当我用Cordova构建它时,它成为我应用程序中js文件的一部分。我的应用程序只加载一个javascript文件:cordova.js,我将所有其他依赖项删除到其他js文件。当该文件在我的应用程序中时(即使index.html不使用其中定义的任何函数),我的测试就会失败。如果我删除该文件的依赖项,测试就可以了!

问题是,当我的应用程序发出一个window.location.reload()时,我的测试在这个错误消息中失败了:

info:调试对客户端的错误响应:{"status":26,“value”:{“message”:“模式对话框已打开,阻止此操作”,“origValue”:“意外警报打开\n(会话信息: webview=)\n (驱动程序信息: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64)"},

如何复制

我创建了一个示例应用程序来复制这个东西。您可以找到我使用的app (APK文件)和C#测试。

APK复制,这是在附件中。可以运行一个简单的Appium测试来重现这个问题:

代码语言:javascript
复制
[Test]
public void SimpleTest()
{
    this.appPackage = "com.myorg.myapp";
    this.appActivity = "myapp";
    BeforeAll();
    Thread.Sleep(3000);

    var submitAddressButton = driver.FindElementByClassName("testClass");
    submitAddressButton.Click();

    Thread.Sleep(3000);
    submitAddressButton = driver.FindElementByClassName("testClass");
    Expect(submitAddressButton, Is.Not.Null);

}

重要

一个对话框被报道的事实实际上是非常奇怪的。在检查了很多之后,我可以验证我的应用程序上没有显示任何本机/webview对话框。事实上,我看不到任何对话框,如果我试图使用Appium和WebDriver API关闭这个幽灵对话框,命令就会失败,因为找不到任何对话框。

备注

考虑到问题不在我在测试中使用的API中(用于Appium的C# dotnet驱动程序)。一切都发生在我的Appium服务器上,运行在Mac上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 14:37:51

我认为这是由于以下基于提示符的js<->java通信逻辑,它运行每个页面重新加载

代码语言:javascript
复制
androidExec.init = function() {
    bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode);
    channel.onNativeReady.fire();
}

https://github.com/apache/cordova-android/blob/master/framework/assets/www/cordova.js#L948

Android本机层可以通过onJSPrompt (http://developer.android.com/reference/android/webkit/WebChromeClient.html#onJsPrompt(android.webkit.WebView)来处理这个问题,因此没有显示实际的对话框。但是Selenium驱动程序似乎不能正确地处理这种情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28054582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档