[
https://issues.jboss.org/browse/ARQGRA-435?page=com.atlassian.jira.plugin...
]
Juraj Húska edited comment on ARQGRA-435 at 4/29/14 6:25 AM:
-------------------------------------------------------------
I am not sure whether the reported test should work.
Everywhere where multiple browser feature is employed, one has to annotate also his
WebElements, Page Fragments, Page Objects with browser qualifier, to denote a browser it
will resolved with.
Thus the mentioned example works when changed as:
{code}
...
@FindBy(id = "name")
@BugReport
WebElement nameField;
...
{code}
So for me it is expected. However, I am not sure whether it is a wished behavior. Guys ?
was (Author: jhuska):
I am not sure whether the reported test should work.
Everywhere where multiple browser feature is employed, one has to also annotate his
{{WebElement}}s, Page Fragments, Page Objects with browser qualifier, to denote a browser
it will resolved with.
Thus the mentioned example works when changed as:
{code}
...
@FindBy(id = "name")
@BugReport
WebElement nameField;
...
{code}
So for me it is expected. However, I am not sure whether it is a wished behavior. Guys ?
Graphene wait does not find @Qualified browser
----------------------------------------------
Key: ARQGRA-435
URL:
https://issues.jboss.org/browse/ARQGRA-435
Project: Arquillian Graphene
Issue Type: Bug
Components: core
Affects Versions: 2.0.2.Final
Reporter: Karel Piwko
Assignee: Juraj Húska
Priority: Critical
Fix For: 2.0.3.Final
It is not possible to wait when browser is qualifiered:
{code}
package com.acme.example.test;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.net.URL;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.drone.api.annotation.Qualifier;
import org.jboss.arquillian.graphene.Graphene;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.Archive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
@RunWith(Arquillian.class)
public class GrapheneBugDroneTest {
@Drone
@BugReport
WebDriver driver;
@Deployment(testable = false)
public static Archive<?> deployHtml5DemoApp() {
return Deployments.createDeployment();
}
@ArquillianResource
URL url;
@FindBy(id = "name")
WebElement nameField;
@Test
public void addUser() throws Exception {
driver.get(url.toString());
Graphene.waitGui(driver).until().element(nameField).is().present();
Assert.assertTrue(true);
}
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
public static @interface BugReport {
}
}
{code}
Wait *Graphene.waitGui(driver).until().element(nameField).is().present();*
fails with
{code}
java.lang.IllegalStateException: There is no context available for qualifier
org.jboss.arquillian.drone.api.annotation.Default. Available contexts are [interface
com.acme.example.test.GrapheneBugDroneTest$BugReport].
at
org.jboss.arquillian.graphene.context.GrapheneContextImpl$LazyContext.getContext(GrapheneContextImpl.java:302)
at
org.jboss.arquillian.graphene.context.GrapheneContextImpl$LazyContext.getConfiguration(GrapheneContextImpl.java:234)
at
org.jboss.arquillian.graphene.DefaultGrapheneRuntime.waitGui(DefaultGrapheneRuntime.java:104)
at org.jboss.arquillian.graphene.Graphene.waitGui(Graphene.java:216)
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.enricher.SearchContextInterceptor.intercept(SearchContextInterceptor.java:50)
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.$Proxy28.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: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.present(IsNotElementBuilderImpl.java:47)
at com.acme.example.test.GrapheneBugDroneTest.addUser(GrapheneBugDroneTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:273)
at
org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at
org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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.createTestContext(ContainerEventController.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at
org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at
org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at
org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
at
org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:266)
at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:229)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:317)
at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:243)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:188)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:317)
at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:202)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:150)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
{code}
Arquillian configuration:
* Core 1.1.4.Final
* Graphene 2.0.2.Final
* Drone 2.0.0.Alpha1
--
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