Juraj Húska created RF-13529:
--------------------------------

             Summary: Taking Screenshot after failed test is broken when using 
remoteReusable browser session
                 Key: RF-13529
                 URL: https://issues.jboss.org/browse/RF-13529
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: tests - functional 
    Affects Versions: 5.0.0.Alpha3
            Reporter: Juraj Húska


When running a fun test with {{-Dreusable=true}} (remoteReusable browser 
session), and test fails, screenshot is not taken and following exception is 
logged:

{code}
js_function_with_param(org.richfaces.ui.ajax.ITTestJsFunction)  Time elapsed: 
11.171 sec  <<< ERROR!
java.lang.RuntimeException: unexpected invocation exception during invocation 
of org.openqa.selenium.TakesScreenshot#getScreenshotAs(), on target 
'ReusableRemoteWebDriver: firefox on LINUX 
(dd4c3a27-487e-4d07-a097-dfe29c9ad83f)': 
org.jboss.arquillian.drone.webdriver.factory.remote.reusable.ReusableRemoteWebDriver.getScreenshotAs(org.openqa.selenium.OutputType)
        at 
org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:135)
        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.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.jboss.arquillian.drone.webdriver.factory.remote.reusable.ReusableRemoteWebDriver$$EnhancerByGraphene$$23f31e28.getScreenshotAs(<generated>)
        at 
org.richfaces.arquillian.browser.FailureScreenshot.takeScreenshotOnFailure(FailureScreenshot.java:28)
        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.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
        at 
org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
        at 
org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
        at 
org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
        at 
org.jboss.arquillian.container.test.impl.client.ContainerEventController.createAfterContext(ContainerEventController.java:134)
{code}

The fact that screenshot is not taken is not that serious with reusable 
session. More frustrating is the logged error, which pollutes the log.

The problem is that RemoteWebDriver needs to be augmented to take screenshot 
from it.

Note that this taking screenshot functionality can be replaced by [screenshot 
extension|https://github.com/smiklosovic/arquillian-unified-recorder]. (once it 
is released and stable).

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

_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to