[arquillian-issues] [JBoss JIRA] (ARQGRA-384) element().is().visible() prematurely exits with exception on Android

Karel Piwko (JIRA) jira-events at lists.jboss.org
Mon Sep 30 08:49:03 EDT 2013


    [ https://issues.jboss.org/browse/ARQGRA-384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12808210#comment-12808210 ] 

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 at 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 at 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 at 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


More information about the arquillian-issues mailing list