[JBoss JIRA] (ARQ-1507) Make usage of Arquillian Droidium stack easier
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1507?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic edited comment on ARQ-1507 at 9/30/13 9:10 AM:
-----------------------------------------------------------------
This is indeed needed since these extensions are tightly coupled and in the most cases 80% (in other words pretty regularly) the main source of errors is the bad configuration of these extensions. The explicit warning on befalf of container would be great but I would like to have Android container test and extension agnostic meaning there are no artifacts put into container impl from Drone or extensions themselves.
was (Author: smikloso):
This is indeed needed since these extensions are tightly coupled and in most cases 80% (in other words pretty regularly) the main source of errors is bad configuration of these extension. The explicit warning on befalf of container would be great but I would like to have Android container test and extension agnostic meaning there are no artifacts put into container impl from Drone or extensions themselves.
> Make usage of Arquillian Droidium stack easier
> ----------------------------------------------
>
> Key: ARQ-1507
> URL: https://issues.jboss.org/browse/ARQ-1507
> Project: Arquillian
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
>
> Currently, Droidium consists of 3 thinks:
> 1/ Container
> 2/ Native extension
> 3/ Web extension
> User can arbitrary combine these extensions. For that reason, it would be great if container, which is always used, will emit some huge warning in case that it discovers Drone is injected and browser==android and web extension is missing on class path. Similarly, container should be able to figure out that native extension is missing but it will likely be needed - as it has access to @Instrumented deployments.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1507) Make usage of Arquillian Droidium stack easier
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1507?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic commented on ARQ-1507:
----------------------------------------
This is indeed needed since these extensions are tightly coupled and in most cases 80% (in other words pretty regularly) the main source of errors is bad configuration of these extension. The explicit warning on befalf of container would be great but I would like to have Android container test and extension agnostic meaning there are no artifacts put into container impl from Drone or extensions themselves.
> Make usage of Arquillian Droidium stack easier
> ----------------------------------------------
>
> Key: ARQ-1507
> URL: https://issues.jboss.org/browse/ARQ-1507
> Project: Arquillian
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
>
> Currently, Droidium consists of 3 thinks:
> 1/ Container
> 2/ Native extension
> 3/ Web extension
> User can arbitrary combine these extensions. For that reason, it would be great if container, which is always used, will emit some huge warning in case that it discovers Drone is injected and browser==android and web extension is missing on class path. Similarly, container should be able to figure out that native extension is missing but it will likely be needed - as it has access to @Instrumented deployments.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1511) Wrong Android server identification in logs
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1511?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic commented on ARQ-1511:
----------------------------------------
The name of the container is taken from this method
https://github.com/arquillian/arquillian-droidium/blob/master/droidium-co...
Since "Starting the container Nexus4" is written out in start method of container adapter where that method gets called and you have specified both avdName and serialId, that method returns avdName as the name of the container. I think the fix for this is to put if statement with serialId before avdName to follow "serialId wins when avdName is present as well" logic.
> Wrong Android server identification in logs
> -------------------------------------------
>
> Key: ARQ-1511
> URL: https://issues.jboss.org/browse/ARQ-1511
> Project: Arquillian
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
> Priority: Minor
>
> Despite the fact I have physical device attached and tests are running on that device, Droidium logs following:
> {code}
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.configuration.AndroidContainerConfiguration validate
> WARNING: Both "avdName" and "serialId" properties are defined, the device specified by "serialId" will get priority if connected.
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.AndroidDeployableContainer start
> INFO: Starting the container Nexus4.
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.impl.AndroidBridgeConnector initAndroidDebugBridge
> INFO: Initializing Android Debug Bridge.
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.impl.AndroidBridgeImpl connect
> INFO: Connecting to the Android Debug Bridge at /home/kpiwko/apps/android-sdk-linux_x86/platform-tools/adb forceNewBridge = true
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.impl.AndroidBridgeConnector initAndroidDebugBridge
> INFO: Android Debug Bridge was initialized in 323ms.
> Sep 29, 2013 4:30:14 PM org.arquillian.droidium.container.impl.AndroidDeviceSelectorImpl getPhysicalDevice
> INFO: Detected physical device with serial ID e8fd5c98.
> {code}
> *Starting the container Nexus4.* is a wrong log output.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQGRA-385) Unable to use Guards with AndroidDriver (again)
by Karel Piwko (JIRA)
[ https://issues.jboss.org/browse/ARQGRA-385?page=com.atlassian.jira.plugin... ]
Karel Piwko commented on ARQGRA-385:
------------------------------------
Adding WebDriver log from Android device.
{code}
LOGCAT: I/AndroidWebDriver( 756): Executing: [get: http://10.34.130.169:8080/html5-demoapp/] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/url)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/url
LOGCAT: I/AndroidWebDriver( 756): Executing: [find element: By.id: addMember] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element)
LOGCAT: I/dalvikvm-heap( 756): Grow heap (frag case) to 11.589MB for 131080-byte allocation
LOGCAT: I/dalvikvm-heap( 756): Grow heap (frag case) to 11.714MB for 131112-byte allocation
LOGCAT: I/dalvikvm-heap( 756): Grow heap (frag case) to 11.912MB for 196664-byte allocation
LOGCAT: I/dalvikvm-heap( 756): Grow heap (frag case) to 12.212MB for 196664-byte allocation
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element
LOGCAT: I/AndroidWebDriver( 756): Executing: [is displayed: 0 org.openqa.selenium.android.library.AndroidWebElement@c2c310fa] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element/0/displayed)
LOGCAT: I/Choreographer( 756): Skipped 38 frames! The application may be doing too much work on its main thread.
LOGCAT: I/AndroidWebDriver( 756): Executing: [find element: By.id: addMember] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element/0/displayed
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element
LOGCAT: I/AndroidWebDriver( 756): Executing: [find element: By.id: addMember] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element
LOGCAT: I/AndroidWebDriver( 756): Executing: [is displayed: 0 org.openqa.selenium.android.library.AndroidWebElement@c2c310fa] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element/0/displayed)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element/0/displayed
LOGCAT: I/AndroidWebDriver( 756): Executing: [find element: By.id: addMember] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/element
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */function invokeInterface (target, method, args) { var args = args || []; try { if (target) { /* property getter */ if (!args.length && method.indexOf("get") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property]) { return target[property]; } } /* property setter */ if (args.length === 1 && method.indexOf("set") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property] != undefined) { target[property] = args[0]; return; } } /* method */ if (typeof(target[method]) == "function") { return target[method].apply(target, args); } } else { throw "target object of invocation is not defined" } } catch (e) { console.log('exception thrown when executing method ' + method + ': ' + e); /* * here an exception should be thrown, but it can't be because of * 'ARQGRA-289: JavaScript interfaces fails on Chrome and PhantomJS' */ return 'GRAPHENE ERROR: ' + e; }};return invokeInterface(Graphene.Page.RequestGuard, "clearRequestDone", arguments);, []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Graphene is not defined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Graphene is not defined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.Page != 'undefined') && (typeof Graphene.Page.RequestGuard != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.xhrInterception != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */window.Graphene = window.Graphene || {};/** * The XMLHttpRequest injection providing ability to intercept requests. */window.Graphene.xhrInterception = (function() { /** * The backup of original XHR object after injection */ var original; /** * Flags for different implementations of XHR */ var isXHR = !!window.XMLHttpRequest; var isActiveX = !!window.ActiveXObject; /** * The hash of arrays of functions (with method names to intercept like keys) */ var interceptors = {}; /** * The prototype of injected XHR object. * * Delegates to intercepter chain. */ var wrapperPrototype = { abort : function() { return invokeInterceptorChain(this, 'abort', arguments); }, open : function() { return invokeInterceptorChain(this, 'open', arguments); }, getAllResponseHeaders : function() { return invokeInterceptorChain(this, 'getAllResponseHeaders', arguments); }, getResponseHeader : function() { return invokeInterceptorChain(this, 'getResponseHeader', arguments); }, send : function() { return invokeInterceptorChain(this, 'send', arguments); }, setRequestHeader : function() { return invokeInterceptorChain(this, 'setRequestHeader', arguments); }, onreadystatechange : undefined }; /** * Injects XHR wrapper for Firefox/Chromium/WebKit and similar browsers */ var replaceXHR = function() { original = window.XMLHttpRequest; window.XMLHttpRequest = createReplacement(); }; /** * Reverts XHR wrapper for Firefox/Chromium/WebKit and similar browsers */ var revertXHR = function() { window.XMLHttpRequest = original; original = undefined; }; /** * Creates XHR wrapper for replacement of original XHR object */ var createReplacement = function() { var InterceptedXMLHttpRequest = function InterceptedXMLHttpRequest() { this.xhr = invokeInterceptorChain(this, 'construct'); this.readyState = this.xhr.readyState; this.response = this.xhr.response; this.responseText = this.xhr.responseText; this.responseType = this.xhr.responseType; this.responseXML = this.xhr.responseXML; this.status = this.xhr.status; this.statusText = this.xhr.statusText; this.xhr.onreadystatechange = callback(this); }; InterceptedXMLHttpRequest.prototype = wrapperPrototype; return InterceptedXMLHttpRequest; }; /** * onreadystatechange callback which is registered on true XHR instance. * * Delegates to intercepter chain. */ var callback = function(wrapper) { return function() { wrapper.readyState = this.readyState; if (wrapper.readyState == 4) { wrapper.responseText = this.responseText; wrapper.responseXML = this.responseXML; wrapper.status = this
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.xhrInterception != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */window.Graphene = window.Graphene || {};window.Graphene.Page = window.Graphene.Page || {};window.Graphene.Page.RequestGuard = (function() { var requestType = "HTTP"; var requestState = "DONE"; var filters = []; function replaceTimeout(xhr) { xhr.originalTimeout = window.setTimeout; window.setTimeout = function(originalCallback, timeout) { if (timeout > window.Graphene.Page.RequestGuard.maximumCallbackTimeout) { xhr.originalTimeout.apply(window, arguments); } else { xhr.callbackCount += 1; var callbackArguments = []; for (var i = 0; i < arguments.length; i++) { if (i >= 2) { callbackArguments.push(arguments[i]); } } xhr.originalTimeout.call(window, function() { try { replaceTimeout(xhr); if (typeof(originalCallback) == 'string') { window.eval(originalCallback); } else { originalCallback(callbackArguments); } } finally { revertTimeout(xhr); xhr.callbackCount -= 1; xhr.tryFinish(); } }, timeout); } } } function revertTimeout(xhr) { window.setTimeout = xhr.originalTimeout; xhr.originalTimeout = null; } function enhanceXhrObject(xhr) { xhr.guarded = true; xhr.callbackCount = 0; xhr.changeState = function(type, state) { if (this.guarded) { requestType = type; requestState = state; } }; xhr.tryFinish = function() { if (this.callbackCount === 0) { this.changeState("XHR", "DONE"); } }; xhr.proceedWithCallbacks = function(context, args) { if (this.guarded) { replaceTimeout(this); try { context.proceed(args); } finally { revertTimeout(this); } } else { context.proceed(args); } }; xhr.isGuarded = function() { for (var i = 0; i < filters.length; i++) { var filter = filters[i]; try { if (!eval(filter)) { return false; } } catch (e) { console.log('failed to filter XHR request "' + filter + '": ' + e.message); } } return true; }; } return { maximumCallbackTimeout : 50, getRequestType : function() { return requestType; }, getRequestState : function() { return requestState; }, clearRequestDone : function() {
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Unexpected token return"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Unexpected token return"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */function invokeInterface (target, method, args) { var args = args || []; try { if (target) { /* property getter */ if (!args.length && method.indexOf("get") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property]) { return target[property]; } } /* property setter */ if (args.length === 1 && method.indexOf("set") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property] != undefined) { target[property] = args[0]; return; } } /* method */ if (typeof(target[method]) == "function") { return target[method].apply(target, args); } } else { throw "target object of invocation is not defined" } } catch (e) { console.log('exception thrown when executing method ' + method + ': ' + e); /* * here an exception should be thrown, but it can't be because of * 'ARQGRA-289: JavaScript interfaces fails on Chrome and PhantomJS' */ return 'GRAPHENE ERROR: ' + e; }};return invokeInterface(Graphene.Page.RequestGuard, "clearRequestDone", arguments);, []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.Page != 'undefined') && (typeof Graphene.Page.RequestGuard != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.xhrInterception != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */window.Graphene = window.Graphene || {};window.Graphene.Page = window.Graphene.Page || {};window.Graphene.Page.RequestGuard = (function() { var requestType = "HTTP"; var requestState = "DONE"; var filters = []; function replaceTimeout(xhr) { xhr.originalTimeout = window.setTimeout; window.setTimeout = function(originalCallback, timeout) { if (timeout > window.Graphene.Page.RequestGuard.maximumCallbackTimeout) { xhr.originalTimeout.apply(window, arguments); } else { xhr.callbackCount += 1; var callbackArguments = []; for (var i = 0; i < arguments.length; i++) { if (i >= 2) { callbackArguments.push(arguments[i]); } } xhr.originalTimeout.call(window, function() { try { replaceTimeout(xhr); if (typeof(originalCallback) == 'string') { window.eval(originalCallback); } else { originalCallback(callbackArguments); } } finally { revertTimeout(xhr); xhr.callbackCount -= 1; xhr.tryFinish(); } }, timeout); } } } function revertTimeout(xhr) { window.setTimeout = xhr.originalTimeout; xhr.originalTimeout = null; } function enhanceXhrObject(xhr) { xhr.guarded = true; xhr.callbackCount = 0; xhr.changeState = function(type, state) { if (this.guarded) { requestType = type; requestState = state; } }; xhr.tryFinish = function() { if (this.callbackCount === 0) { this.changeState("XHR", "DONE"); } }; xhr.proceedWithCallbacks = function(context, args) { if (this.guarded) { replaceTimeout(this); try { context.proceed(args); } finally { revertTimeout(this); } } else { context.proceed(args); } }; xhr.isGuarded = function() { for (var i = 0; i < filters.length; i++) { var filter = filters[i]; try { if (!eval(filter)) { return false; } } catch (e) { console.log('failed to filter XHR request "' + filter + '": ' + e.message); } } return true; }; } return { maximumCallbackTimeout : 50, getRequestType : function() { return requestType; }, getRequestState : function() { return requestState; }, clearRequestDone : function() {
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Unexpected token return"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Unexpected token return"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */function invokeInterface (target, method, args) { var args = args || []; try { if (target) { /* property getter */ if (!args.length && method.indexOf("get") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property]) { return target[property]; } } /* property setter */ if (args.length === 1 && method.indexOf("set") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property] != undefined) { target[property] = args[0]; return; } } /* method */ if (typeof(target[method]) == "function") { return target[method].apply(target, args); } } else { throw "target object of invocation is not defined" } } catch (e) { console.log('exception thrown when executing method ' + method + ': ' + e); /* * here an exception should be thrown, but it can't be because of * 'ARQGRA-289: JavaScript interfaces fails on Chrome and PhantomJS' */ return 'GRAPHENE ERROR: ' + e; }};return invokeInterface(Graphene.Page.RequestGuard, "clearRequestDone", arguments);, []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.Page != 'undefined') && (typeof Graphene.Page.RequestGuard != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.xhrInterception != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */window.Graphene = window.Graphene || {};/** * The XMLHttpRequest injection providing ability to intercept requests. */window.Graphene.xhrInterception = (function() { /** * The backup of original XHR object after injection */ var original; /** * Flags for different implementations of XHR */ var isXHR = !!window.XMLHttpRequest; var isActiveX = !!window.ActiveXObject; /** * The hash of arrays of functions (with method names to intercept like keys) */ var interceptors = {}; /** * The prototype of injected XHR object. * * Delegates to intercepter chain. */ var wrapperPrototype = { abort : function() { return invokeInterceptorChain(this, 'abort', arguments); }, open : function() { return invokeInterceptorChain(this, 'open', arguments); }, getAllResponseHeaders : function() { return invokeInterceptorChain(this, 'getAllResponseHeaders', arguments); }, getResponseHeader : function() { return invokeInterceptorChain(this, 'getResponseHeader', arguments); }, send : function() { return invokeInterceptorChain(this, 'send', arguments); }, setRequestHeader : function() { return invokeInterceptorChain(this, 'setRequestHeader', arguments); }, onreadystatechange : undefined }; /** * Injects XHR wrapper for Firefox/Chromium/WebKit and similar browsers */ var replaceXHR = function() { original = window.XMLHttpRequest; window.XMLHttpRequest = createReplacement(); }; /** * Reverts XHR wrapper for Firefox/Chromium/WebKit and similar browsers */ var revertXHR = function() { window.XMLHttpRequest = original; original = undefined; }; /** * Creates XHR wrapper for replacement of original XHR object */ var createReplacement = function() { var InterceptedXMLHttpRequest = function InterceptedXMLHttpRequest() { this.xhr = invokeInterceptorChain(this, 'construct'); this.readyState = this.xhr.readyState; this.response = this.xhr.response; this.responseText = this.xhr.responseText; this.responseType = this.xhr.responseType; this.responseXML = this.xhr.responseXML; this.status = this.xhr.status; this.statusText = this.xhr.statusText; this.xhr.onreadystatechange = callback(this); }; InterceptedXMLHttpRequest.prototype = wrapperPrototype; return InterceptedXMLHttpRequest; }; /** * onreadystatechange callback which is registered on true XHR instance. * * Delegates to intercepter chain. */ var callback = function(wrapper) { return function() { wrapper.readyState = this.readyState; if (wrapper.readyState == 4) { wrapper.responseText = this.responseText; wrapper.responseXML = this.responseXML; wrapper.status = this
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.xhrInterception != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */function invokeInterface (target, method, args) { var args = args || []; try { if (target) { /* property getter */ if (!args.length && method.indexOf("get") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property]) { return target[property]; } } /* property setter */ if (args.length === 1 && method.indexOf("set") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property] != undefined) { target[property] = args[0]; return; } } /* method */ if (typeof(target[method]) == "function") { return target[method].apply(target, args); } } else { throw "target object of invocation is not defined" } } catch (e) { console.log('exception thrown when executing method ' + method + ': ' + e); /* * here an exception should be thrown, but it can't be because of * 'ARQGRA-289: JavaScript interfaces fails on Chrome and PhantomJS' */ return 'GRAPHENE ERROR: ' + e; }};return invokeInterface(Graphene.Page.RequestGuard, "clearRequestDone", arguments);, []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: return (typeof Graphene != 'undefined') && (typeof Graphene.Page != 'undefined') && (typeof Graphene.Page.RequestGuard != 'undefined'), []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute
LOGCAT: I/AndroidWebDriver( 756): Executing: [execute script: /* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */function invokeInterface (target, method, args) { var args = args || []; try { if (target) { /* property getter */ if (!args.length && method.indexOf("get") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property]) { return target[property]; } } /* property setter */ if (args.length === 1 && method.indexOf("set") == 0) { var property = method.substring(3, method.length); /* uncapitalize */ property = property.charAt(0).toLowerCase() + property.slice(1); if (property && target[property] != undefined) { target[property] = args[0]; return; } } /* method */ if (typeof(target[method]) == "function") { return target[method].apply(target, args); } } else { throw "target object of invocation is not defined" } } catch (e) { console.log('exception thrown when executing method ' + method + ': ' + e); /* * here an exception should be thrown, but it can't be because of * 'ARQGRA-289: JavaScript interfaces fails on Chrome and PhantomJS' */ return 'GRAPHENE ERROR: ' + e; }};return invokeInterface(Graphene.Page.RequestGuard, "clearRequestDone", arguments);, []] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d/execute)
(E) TestResult
(E) After
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) TestContextHandler.createSuiteContext
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) AfterClass
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyClassScopedDrone
(E) DroneLifecycleEvent
(O) DroneEnhancer.deenhanceDrone
(E) DroneEnhancementEvent
(E) DroneEnhancementEvent
LOGCAT: I/AndroidWebDriver( 756): Executing: [delete session: cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d] at URL: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d)
LOGCAT: W/AndroidWebDriver( 756): Exception thrown
LOGCAT: W/AndroidWebDriver( 756): org.openqa.selenium.WebDriverException: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invokeNative(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.reflect.Method.invoke(Method.java:511)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
LOGCAT: W/AndroidWebDriver( 756): at $Proxy1.executeScript(Native Method)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
LOGCAT: W/AndroidWebDriver( 756): at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
LOGCAT: W/AndroidWebDriver( 756): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
LOGCAT: W/AndroidWebDriver( 756): at java.lang.Thread.run(Thread.java:856)
LOGCAT: E/webview ( 756): Error: WebView.destroy() called while still attached!
LOGCAT: I/AndroidWebDriver( 756): Done: /session/cb7ba976-6c1f-4f84-bb8d-bd83d9c3ea2d
LOGCAT: W/AndroidWebDriver( 756): Exception: Error: {"message":"Cannot read property 'RequestGuard' of undefined"}
LOGCAT: W/AndroidWebDriver( 756): Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
LOGCAT: W/AndroidWebDriver( 756): System info: os.name: 'Linux', os.arch: 'armv7l', os.version: '2.6.29-gc497e41', java.version: '0'
LOGCAT: W/AndroidWebDriver( 756): Driver info: driver.version: EventFiringWebDriver
(E) DroneLifecycleEvent
(O) ServerSetupObserver.afterTestClass
(O) ContainerEventController.execute
(E) ContainerMultiControlEvent
(O) ContainerDeployController.undeployManaged
(E) UnDeployDeployment
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(O) ContainerDeployController.undeploy
(E) BeforeUnDeploy
(E) AfterUnDeploy
(O) ServerSetupObserver.handleAfterUndeploy
(E) ContainerMultiControlEvent
(O) ContainerLifecycleController.stopManualContainers
(E) ContainerMultiControlEvent
(O) ContainerLifecycleController.stopClassContainers
(O) GrapheneConfigurator.unconfigureGraphene
(E) GrapheneUnconfigured
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 57.078 sec <<< FAILURE!
addUser(com.acme.example.test.DroneTest) Time elapsed: 15.677 sec <<< ERROR!
java.lang.IllegalStateException: Can't invoke the javacript org.jboss.arquillian.graphene.guard.RequestGuardImpl#clearRequestDone()
at java.lang.Enum.valueOf(Enum.java:236)
at org.jboss.arquillian.graphene.request.RequestType.valueOf(RequestType.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.graphene.javascript.DefaultExecutionResolver.castStringToEnum(DefaultExecutionResolver.java:130)
at org.jboss.arquillian.graphene.javascript.DefaultExecutionResolver.castResult(DefaultExecutionResolver.java:117)
at org.jboss.arquillian.graphene.javascript.DefaultExecutionResolver.execute(DefaultExecutionResolver.java:79)
at org.jboss.arquillian.graphene.javascript.JSInterfaceHandler.intercept(JSInterfaceHandler.java:58)
at org.jboss.arquillian.graphene.cglib.ClassImposterizer$ClassWithSuperclassToWorkAroundCglibBug$$EnhancerByGraphene$$239f80e1.clearRequestDone(<generated>)
at org.jboss.arquillian.graphene.guard.RequestGuardFactory$1.intercept(RequestGuardFactory.java:95)
at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.intercept(GrapheneContextualHandler.java:229)
at org.openqa.selenium.remote.RemoteWebElement$$EnhancerByGraphene$$ed59cce5.click(<generated>)
at com.acme.example.test.AddMemberPage.addNewMember(AddMemberPage.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:130)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$1.invoke(GrapheneContextualHandler.java:159)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.intercept(GrapheneContextualHandler.java:229)
at com.acme.example.test.AddMemberPage$$EnhancerByGraphene$$50095be8.addNewMember(<generated>)
at com.acme.example.test.DroneTest.addUser(DroneTest.java:26)
{code}
> Unable to use Guards with AndroidDriver (again)
> -----------------------------------------------
>
> Key: ARQGRA-385
> URL: https://issues.jboss.org/browse/ARQGRA-385
> Project: Arquillian Graphene
> Issue Type: Bug
> Components: core
> Affects Versions: 2.0.0.CR1
> Environment: Selenium APK 2.32.
> Reporter: Karel Piwko
> Priority: Critical
> Fix For: 2.0.0.Final
>
>
> It is not possible to use Guards on Android driver, it fails with following error:
> {code}
> java.lang.IllegalStateException: Can't invoke the javacript org.jboss.arquillian.graphene.guard.RequestGuardImpl#clearRequestDone()
> at org.openqa.selenium.android.library.AndroidWebDriver.throwIfError(AndroidWebDriver.java:1024)
> at org.openqa.selenium.android.library.AndroidWebDriver.executeRawScript(AndroidWebDriver.java:895)
> at org.openqa.selenium.android.library.AndroidWebDriver.injectJavascript(AndroidWebDriver.java:930)
> at org.openqa.selenium.android.library.AndroidWebDriver.executeScript(AndroidWebDriver.java:786)
> at org.openqa.selenium.android.AndroidApkDriver.executeScript(AndroidApkDriver.java:106)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
> at $Proxy1.executeScript(Native Method)
> at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:209)
> at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
> at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:1)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
> at java.util.concurrent.FutureTask.run(FutureTask.java:137)
> at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> at java.lang.Thread.run(Thread.java:856)
> {code}
> I've tested both *guardAjax(...)* and *guardNoRequest(...)* guards.
> Together with ARQGRA-384, this significantly reduces usability of Graphene when combined with AndroidDriver.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQGRA-384) element().is().visible() prematurely exits with exception on Android
by Karel Piwko (JIRA)
[ https://issues.jboss.org/browse/ARQGRA-384?page=com.atlassian.jira.plugin... ]
Karel Piwko commented on ARQGRA-384:
------------------------------------
I was able to get more information by enabling "-e debug true" for WebDriver package:
{code}
LOGCAT: I/AndroidWebDriver( 775): Executing: [get: http://10.34.130.169:8080/html5-demoapp/] at URL: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/url)
LOGCAT: I/AndroidWebDriver( 775): Done: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/url
LOGCAT: I/AndroidWebDriver( 775): Executing: [get: http://10.34.130.169:8080/html5-demoapp/] at URL: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/url)
LOGCAT: I/AndroidWebDriver( 775): Done: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/url
LOGCAT: I/AndroidWebDriver( 775): Executing: [find element: By.id: addMember] at URL: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/element)
LOGCAT: I/dalvikvm-heap( 775): Grow heap (frag case) to 11.605MB for 131080-byte allocation
LOGCAT: I/dalvikvm-heap( 775): Grow heap (frag case) to 11.716MB for 131112-byte allocation
LOGCAT: I/dalvikvm-heap( 775): Grow heap (frag case) to 11.914MB for 196664-byte allocation
LOGCAT: I/dalvikvm-heap( 775): Grow heap (frag case) to 12.214MB for 196664-byte allocation
LOGCAT: I/AndroidWebDriver( 775): Done: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/element
(E) TestResult
(E) After
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) AfterClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyClassScopedDrone
(E) DroneLifecycleEvent
(O) DroneEnhancer.deenhanceDrone
(E) DroneEnhancementEvent
(E) DroneEnhancementEvent
LOGCAT: I/AndroidWebDriver( 775): Executing: [is displayed: 0 org.openqa.selenium.android.library.AndroidWebElement@c2c4fbe9] at URL: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/element/0/displayed)
LOGCAT: I/AndroidWebDriver( 775): Executing: [delete session: c1d5db55-a2da-42e2-b8c0-fbca4ab388bd] at URL: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd)
LOGCAT: I/AndroidWebDriver( 775): Done: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd
LOGCAT: E/webview ( 775): Error: WebView.destroy() called while still attached!
(E) DroneLifecycleEvent
(O) ContainerEventController.execute
(E) ContainerMultiControlEvent
(O) ContainerDeployController.undeployManaged
(E) UnDeployDeployment
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(O) ContainerDeployController.undeploy
(E) BeforeUnDeploy
LOGCAT: I/AndroidWebDriver( 775): Done: /session/c1d5db55-a2da-42e2-b8c0-fbca4ab388bd/element/0/displayed
(E) AfterUnDeploy
(O) ServerSetupObserver.handleAfterUndeploy
(E) ContainerMultiControlEvent
(O) ContainerLifecycleController.stopManualContainers
(E) ContainerMultiControlEvent
(O) ContainerLifecycleController.stopClassContainers
(O) ServerSetupObserver.afterTestClass
(O) GrapheneConfigurator.unconfigureGraphene
(E) GrapheneUnconfigured
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 56.25 sec <<< FAILURE!
addUser(com.acme.example.test.DroneTest) Time elapsed: 13.342 sec <<< ERROR!
org.openqa.selenium.WebDriverException: Returned value cannot be converted to Boolean: [org.openqa.selenium.remote.RemoteWebElement@30 -> unknown locator]
Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-358.18.1.el6.x86_64', java.version: '1.7.0_25'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.RemoteWebElement.isDisplayed(RemoteWebElement.java:323)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:130)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$1.invoke(GrapheneContextualHandler.java:159)
at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:48)
at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:44)
at org.openqa.selenium.support.ui.FluentWait$1.apply(FluentWait.java:177)
at org.openqa.selenium.support.ui.FluentWait$1.apply(FluentWait.java:175)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:175)
at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.until(WebDriverWaitImpl.java:87)
at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor.intercept(StaleElementInterceptor.java:44)
at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
at org.jboss.arquillian.graphene.intercept.InterceptorBuilder$2.intercept(InterceptorBuilder.java:139)
at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
at org.jboss.arquillian.graphene.enricher.SearchContextInterceptor.intercept(SearchContextInterceptor.java:50)
at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
at com.sun.proxy.$Proxy36.isDisplayed(Unknown Source)
at org.openqa.selenium.support.ui.ExpectedConditions.elementIfVisible(ExpectedConditions.java:228)
at org.openqa.selenium.support.ui.ExpectedConditions.access$100(ExpectedConditions.java:39)
at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:213)
at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:210)
at org.jboss.arquillian.graphene.condition.BooleanConditionWrapper.apply(BooleanConditionWrapper.java:61)
at org.jboss.arquillian.graphene.condition.BooleanConditionWrapper.apply(BooleanConditionWrapper.java:37)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.until(WebDriverWaitImpl.java:102)
at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.commit(WebDriverWaitImpl.java:110)
at org.jboss.arquillian.graphene.wait.IsNotElementBuilderImpl.visible(IsNotElementBuilderImpl.java:57)
at com.acme.example.test.AddMemberPage.addNewMember(AddMemberPage.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:130)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$1.invoke(GrapheneContextualHandler.java:159)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.intercept(GrapheneContextualHandler.java:229)
at com.acme.example.test.AddMemberPage$$EnhancerByGraphene$$b4de689c.addNewMember(<generated>)
at com.acme.example.test.DroneTest.addUser(DroneTest.java:26)
{code}
Still, it does not look clear what was actual problem.
> element().is().visible() prematurely exits with exception on Android
> --------------------------------------------------------------------
>
> Key: ARQGRA-384
> URL: https://issues.jboss.org/browse/ARQGRA-384
> Project: Arquillian Graphene
> Issue Type: Bug
> Components: core
> Affects Versions: 2.0.0.CR1
> Reporter: Karel Piwko
> Fix For: 2.0.0.Final
>
>
> When using following call using Graphene and AndroidDriver, it often fails with an exception on Android:
> {code}
> waitGui().withMessage("Add member button is not yet present.").until().element(addMemberBtn).is().visible();
> {code}
> {code}
> addUser(com.acme.example.test.DroneTest) Time elapsed: 8.491 sec <<< ERROR!
> org.openqa.selenium.WebDriverException: Returned value cannot be converted to Boolean: [org.openqa.selenium.remote.RemoteWebElement@30 -> unknown locator]
> Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41'
> System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-358.18.1.el6.x86_64', java.version: '1.7.0_25'
> Driver info: driver.version: unknown
> at org.openqa.selenium.remote.RemoteWebElement.isDisplayed(RemoteWebElement.java:323)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:130)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$1.invoke(GrapheneContextualHandler.java:159)
> at org.jboss.arquillian.graphene.enricher.SearchContextInterceptor.intercept(SearchContextInterceptor.java:50)
> at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
> at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:48)
> at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:44)
> at org.openqa.selenium.support.ui.FluentWait$1.apply(FluentWait.java:177)
> at org.openqa.selenium.support.ui.FluentWait$1.apply(FluentWait.java:175)
> at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
> at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:175)
> at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.until(WebDriverWaitImpl.java:87)
> at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor.intercept(StaleElementInterceptor.java:44)
> at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
> at org.jboss.arquillian.graphene.intercept.InterceptorBuilder$2.intercept(InterceptorBuilder.java:139)
> at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:87)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
> at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
> at com.sun.proxy.$Proxy37.isDisplayed(Unknown Source)
> at org.openqa.selenium.support.ui.ExpectedConditions.elementIfVisible(ExpectedConditions.java:228)
> at org.openqa.selenium.support.ui.ExpectedConditions.access$100(ExpectedConditions.java:39)
> at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:213)
> at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:210)
> at org.jboss.arquillian.graphene.condition.BooleanConditionWrapper.apply(BooleanConditionWrapper.java:61)
> at org.jboss.arquillian.graphene.condition.BooleanConditionWrapper.apply(BooleanConditionWrapper.java:37)
> at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
> at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.until(WebDriverWaitImpl.java:102)
> at org.jboss.arquillian.graphene.wait.WebDriverWaitImpl.commit(WebDriverWaitImpl.java:110)
> at org.jboss.arquillian.graphene.wait.IsNotElementBuilderImpl.visible(IsNotElementBuilderImpl.java:57)
> at com.acme.example.test.AddMemberPage.addNewMember(AddMemberPage.java:38)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:130)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$1.invoke(GrapheneContextualHandler.java:159)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler$2.call(GrapheneContextualHandler.java:209)
> at org.jboss.arquillian.graphene.context.BrowserActions.performAction(BrowserActions.java:62)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.intercept(GrapheneContextualHandler.java:229)
> at com.acme.example.test.AddMemberPage$$EnhancerByGraphene$$75cffd91.addNewMember(<generated>)
> at com.acme.example.test.DroneTest.addUser(DroneTest.java:25)
> {code}
> This looks like that visibility checker should ignore this exception, as element is in intermediate state at this moment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1513) Multicontainer extension should not log warnings about its property
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1513?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic edited comment on ARQ-1513 at 9/30/13 8:48 AM:
-----------------------------------------------------------------
This property is needed in multiple container module. The cause of this error is that there is not configuration property of such name in underlying Android container - this error will be however present for any other container adapter since there is no way how to put this property to their respective configuration classes.
In order to get rid of this, you would have to have some kind of micro extension where this mapping is happening but the question how to map container configurations from containers element to their implementation classes still remains.
was (Author: smikloso):
This property is needed in multiple container module. The cause of this error is that there is not configuration property of such name in underlying Android container - this error will be however present for any other container adapter since there is no way how to put this property to their respective configuration classes.
In order to get rid of this, you would have to have some kind of micro extension where this mapping is happening but the question how to map container configurations from containers element to its implementation classes still remains.
> Multicontainer extension should not log warnings about its property
> -------------------------------------------------------------------
>
> Key: ARQ-1513
> URL: https://issues.jboss.org/browse/ARQ-1513
> Project: Arquillian
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
> Priority: Minor
>
> All the time, following WARNING is present in the log:
> {code}
> Unused property entries: {adapterImplClass=org.arquillian.droidium.container.AndroidDeployableContainer}
> {code}
> As this property is required, the warning should be somehow suppressed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1513) Multicontainer extension should not log warnings about its property
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1513?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic edited comment on ARQ-1513 at 9/30/13 8:47 AM:
-----------------------------------------------------------------
This property is needed in multiple container module. The cause of this error is that there is not configuration property of such name in underlying Android container - this error will be however present for any other container adapter since there is no way how to put this property to their respective configuration classes.
In order to get rid of this, you would have to have some kind of micro extension where this mapping is happening but the question how to map container configurations from containers element to its implementation classes still remains.
was (Author: smikloso):
This property is needed in multiple container module. The cause of this error is that there is not configuration property of such name in underlying Android container - this error will be however present for any other container adapter since there is no way how to put this property to their respective configuration classes.
In order to get rid of this, you would have to have some kind of micro extension where this mapping is happening but the question how to map container configrations from containers element to its implementation classes still remains.
> Multicontainer extension should not log warnings about its property
> -------------------------------------------------------------------
>
> Key: ARQ-1513
> URL: https://issues.jboss.org/browse/ARQ-1513
> Project: Arquillian
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
> Priority: Minor
>
> All the time, following WARNING is present in the log:
> {code}
> Unused property entries: {adapterImplClass=org.arquillian.droidium.container.AndroidDeployableContainer}
> {code}
> As this property is required, the warning should be somehow suppressed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1513) Multicontainer extension should not log warnings about its property
by Stefan Miklosovic (JIRA)
[ https://issues.jboss.org/browse/ARQ-1513?page=com.atlassian.jira.plugin.s... ]
Stefan Miklosovic commented on ARQ-1513:
----------------------------------------
This property is needed in multiple container module. The cause of this error is that there is not configuration property of such name in underlying Android container - this error will be however present for any other container adapter since there is no way how to put this property to their respective configuration classes.
In order to get rid of this, you would have to have some kind of micro extension where this mapping is happening but the question how to map container configrations from containers element to its implementation classes still remains.
> Multicontainer extension should not log warnings about its property
> -------------------------------------------------------------------
>
> Key: ARQ-1513
> URL: https://issues.jboss.org/browse/ARQ-1513
> Project: Arquillian
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Extension - Droidium
> Affects Versions: droidium_1.0.0.Alpha1
> Reporter: Karel Piwko
> Priority: Minor
>
> All the time, following WARNING is present in the log:
> {code}
> Unused property entries: {adapterImplClass=org.arquillian.droidium.container.AndroidDeployableContainer}
> {code}
> As this property is required, the warning should be somehow suppressed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ARQ-1515) Allow debugging mode for Selenium APK
by Karel Piwko (JIRA)
Karel Piwko created ARQ-1515:
--------------------------------
Summary: Allow debugging mode for Selenium APK
Key: ARQ-1515
URL: https://issues.jboss.org/browse/ARQ-1515
Project: Arquillian
Issue Type: Enhancement
Security Level: Public (Everyone can see)
Components: Extension - Droidium
Affects Versions: droidium_1.0.0.Alpha1
Reporter: Karel Piwko
Currently, it is not possible to add *-e debug* when Selenium/WebDriver is started on Android device.
Like
{code}
$./adb -s <serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity -e debug true
{code}
Provide a switch/configuration/ means that will allow this logging. More details here http://code.google.com/p/selenium/wiki/AndroidDriver
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months