[ 
https://issues.apache.org/jira/browse/CB-8080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14268936#comment-14268936
 ] 

Andrea Tino commented on CB-8080:
---------------------------------

We probably found the problem. After the introduction of the bridge secret in 
version 3.6.3 the problem started showing. The checkin probably responsible for 
this is: 
https://github.com/apache/cordova-android/commit/aab47bd4532bfe8707d745638eb5695ac543c681.
 Here you can see that {{prompt()}} is being used and this is causing the 
problem. We could assess it by debugging the app using Eclipse while the app 
was being automated by ChromeDriver through Appium.

To run a good assessment you will also need to include content from checkin 
https://github.com/apache/cordova-android/commit/ec47274fbd91d2f0b658da64f5d4d4dd6600f625.
 In fact, in the first checkin, file {{cordova.js}} was not modified according 
to the edits made on the native side. This second checkin fixes the 
misalignment.

Unfortunately it is not easy for us to find a workaround as the whole security 
feature introduced in version 3.6.3 with this {{securityBridge}} spans across 
multiple checkins and impact several areas of the code. That is why I think the 
Cordova Team is needed in this case. {{prompt()}} is causing a dialog to be 
triggered somehow when page is reloaded or a page transition is performed. The 
problem is that the dialog is never shown but under the hoods in Chrome 
something is happening.

> After migrating to 3.6.3 from 3.4.0, Appium (Android) tests fail because of 
> open dialog
> ---------------------------------------------------------------------------------------
>
>                 Key: CB-8080
>                 URL: https://issues.apache.org/jira/browse/CB-8080
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android, CordovaJS
>    Affects Versions: 3.6.3
>         Environment: Basic Appium test on Android webview based app. The test 
> on Appium works until the app issues a `window.location.reload()` or a 
> `window.location.href = 'something'`.
>            Reporter: Andrea Tino
>              Labels: javascript
>         Attachments: MyApp-debug.apk
>
>
> After upgrading to Cordova 3.6.3 from Cordova 3.4.0; my Appium tests cannot 
> go on because of a strange error. The error can be reproed very easily by 
> creating a basic web-view based app on Android which issues a 
> {{window.location.reload()}} after a while that the test starts.
> I could assess that the problem is one particular file: {{cordova.js}} which 
> becomes part of the js files in my app when I build it with Cordova. My app 
> loads only one javascript file: {{cordova.js}}, I removed all other 
> dependencies to other js files. When that file is in my app (even though 
> {{index.html}} does not use any function defined in there), my tests fails. 
> If I remove the dependencies to that file, tests go ok!
> The problem is that when my app issues a {{window.location.reload()}}; my 
> test fail with this error message:
> {code}
> info: [debug] Responding to client with error: 
> {"status":26,"value":{"message":"A modal dialog was open, blocking this 
> operation","origValue":"unexpected alert open\n (Session info: webview=)\n 
> (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 
> x86_64)"},"sessionId":"965ba51e54f682559e5b8378095bc3d4"}
> {code}
> *Test*
> The APK to repro this is in attachments. It is possible to run a simple 
> Appium test to repro the problem:
> {code}
> [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);
>         }
> {code}
> *Important*
> The fact that a dialog is reported is actually very strange. After inspecting 
> a lot I could verify that no native/webview dialog is being shown on my app. 
> In fact I cannot see any dialog and if I try to dismiss this ghost dialog 
> using Appium and WebDriver APIs, the command fail as no dialog can be found.
> *Notes*
> Consider that the problem is not in the APIs I use in my test (C# dotnet 
> driver for Appium). Everything happens on my Appium server running on a Mac.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to