[arquillian-issues] [JBoss JIRA] (ARQGRA-266) Waiting for presence of element defined by jQuery selector sometimes causes "IllegalStateException: JQueryPageExtension can't be installed"

Jan Papousek (JIRA) jira-events at lists.jboss.org
Thu Feb 14 09:12:56 EST 2013


     [ https://issues.jboss.org/browse/ARQGRA-266?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Papousek resolved ARQGRA-266.
---------------------------------

    Resolution: Done


I've fixed the issue by https://github.com/arquillian/arquillian-graphene/commit/7d1feb265f00e6aa3629fa6417c3f477fad5e0b3

The problem is similar to ARQGRA-262, so I refactored the jquery locators to use @JavaScript interface instead of raw page extensions.
                
> Waiting for presence of element defined by jQuery selector sometimes causes "IllegalStateException: JQueryPageExtension can't be installed"
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARQGRA-266
>                 URL: https://issues.jboss.org/browse/ARQGRA-266
>             Project: Arquillian Graphene
>          Issue Type: Bug
>         Environment: Fedora 15, Firefox 17
>            Reporter: Oliver Kišš
>            Assignee: Jan Papousek
>             Fix For: 2.0.0.Beta1
>
>
> Waiting for presence of element defined by jQuery selector sometimes causes "IllegalStateException: JQueryPageExtension can't be installed".
> This behavior is not consistent. On some runs of the test the exception is thrown, on others it is not.
> Element definition:
> {code}
>     @FindBy(jquery = ":contains('" + HOTELS_FILTER_TEXT + "')")
>     WebElement foundHotel;
> {code}
> Affected line from the test:
> {code}
>         waitModel()
>                 .withMessage("Booking was not created")
>                 .until(element(foundHotel).isPresent());
> {code}
> Exception stack trace
> {code}
> java.lang.IllegalStateException: The page extension 'org.jboss.arquillian.graphene.page.extension.JQueryPageExtension' can't be installed.
> 	at org.jboss.arquillian.graphene.page.extension.AbstractPageExtensionInstallator.install(AbstractPageExtensionInstallator.java:55)
> 	at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:616)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:209)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler$1.invoke(GrapheneProxyHandler.java:140)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invoke(GrapheneProxyHandler.java:170)
> 	at $Proxy25.install(Unknown Source)
> 	at org.jboss.arquillian.graphene.enricher.findby.ByJQuery.installJQueryExtension(ByJQuery.java:108)
> 	at org.jboss.arquillian.graphene.enricher.findby.ByJQuery.findElement(ByJQuery.java:96)
> 	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:294)
> 	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:616)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invokeReal(GrapheneProxyHandler.java:209)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler$1.invoke(GrapheneProxyHandler.java:140)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invoke(GrapheneProxyHandler.java:170)
> 	at $Proxy19.findElement(Unknown Source)
> 	at org.jboss.arquillian.graphene.enricher.AbstractWebElementEnricher$1.getTarget(AbstractWebElementEnricher.java:50)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.getTarget(GrapheneProxyHandler.java:227)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler$1.getTarget(GrapheneProxyHandler.java:163)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler$1.invoke(GrapheneProxyHandler.java:140)
> 	at org.jboss.arquillian.graphene.intercept.InterceptorBuilder$2.intercept(InterceptorBuilder.java:107)
> 	at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:73)
> 	at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:25)
> 	at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor$1.apply(StaleElementInterceptor.java:21)
> 	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:204)
> 	at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:175)
> 	at org.jboss.arquillian.graphene.enricher.StaleElementInterceptor.intercept(StaleElementInterceptor.java:21)
> 	at org.jboss.arquillian.graphene.proxy.InvocationContextImpl.invoke(InvocationContextImpl.java:73)
> 	at org.jboss.arquillian.graphene.proxy.GrapheneProxyHandler.invoke(GrapheneProxyHandler.java:170)
> 	at $Proxy21.isDisplayed(Unknown Source)
> 	at org.jboss.arquillian.graphene.condition.element.ElementIsPresent.check(ElementIsPresent.java:44)
> 	at org.jboss.arquillian.graphene.condition.element.ElementIsPresent.check(ElementIsPresent.java:31)
> 	at org.jboss.arquillian.graphene.condition.element.AbstractElementBooleanCondition.apply(AbstractElementBooleanCondition.java:52)
> 	at org.jboss.arquillian.graphene.condition.element.AbstractElementBooleanCondition.apply(AbstractElementBooleanCondition.java:33)
> 	at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:204)
> 	at org.jboss.wfk.test.spring.swf.booking.faces.BookingFacesTest.bookingTest(BookingFacesTest.java:182)
> {code}

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