Wired, from the exception seems it complained about the call
org.tellurium.module.communitymember.AddCommunityMemberPage.isElementPresent("communityListPageRoot.2ndContainer.cancel")
and it cannot find the proper method signature.
Your method call looks similar to the above, right?
BTW, what version of Groovy are you using?
Thanks,
Jian
On Fri, Sep 25, 2009 at 3:26 AM, Setya <[email protected]> wrote:
>
> Hi,
>
> Here's the exception stacktrace:
>
> ...
> groovy.lang.MissingMethodException: No signature of method:
>
> org.tellurium.module.communitymember.AddCommunityMemberPage.isElementPresent()
> is applicable for argument types: (java.lang.String) values:
> [communityListPageRoot.2ndContainer.cancel]
> at
>
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54)
> at
>
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:90)
> at
>
> org.tellurium.module.CommunityList.isOnCommunityListPage(CommunityList.groovy:44)
> at
>
> org.tellurium.test.communitymember.TestAddCommunityMemberPage.testAddCommunityMember(TestAddCommunityMemberPage.java:63)
> 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:44)
> at
>
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
>
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
>
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at
>
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at
>
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
> at
>
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
> at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
> at
>
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
> at
>
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
> 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)
>
> com.thoughtworks.selenium.SeleniumException: ERROR: Element
> //descendant-or-self::html/body/descendant-or-self::div[1]/a not found
> at
>
> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
> at
>
> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
> at
>
> com.thoughtworks.selenium.DefaultSelenium.mouseOver(DefaultSelenium.java:243)
> 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1061)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
> at
> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:142)
> at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source)
> at org.tellurium.dispatch.Dispatcher.invokeMethod(Dispatcher.groovy:26)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:46)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
> at
> org.tellurium.event.EventHandler.processingEvent(EventHandler.groovy:52)
> 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at
>
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:361)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
> at
>
> org.tellurium.event.EventHandler$_processEvents_closure1.doCall(EventHandler.groovy:73)
> 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at
>
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
> at groovy.lang.Closure.call(Closure.java:279)
> at groovy.lang.Closure.call(Closure.java:292)
> at
>
> org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1165)
> at
>
> org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1141)
> at org.codehaus.groovy.runtime.dgm$87.invoke(Unknown Source)
> at
>
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
> at
>
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
> at
> org.tellurium.event.EventHandler.processEvents(EventHandler.groovy:69)
> 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.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:47)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:162)
> at org.tellurium.event.EventHandler.click(EventHandler.groovy:146)
> at org.tellurium.event.EventHandler$click.call(Unknown Source)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
> at org.tellurium.event.EventHandler$click.call(Unknown Source)
> at
>
> org.tellurium.dsl.BaseDslContext$_click_closure3.doCall(BaseDslContext.groovy:221)
> 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at
>
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
> at org.tellurium.object.UrlLink.click(UrlLink.groovy:17)
> at org.tellurium.object.UrlLink$click.call(Unknown Source)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:89)
> at org.tellurium.dsl.BaseDslContext.click(BaseDslContext.groovy:219)
> 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1061)
> at
>
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:77)
> at
>
> org.tellurium.module.communitymember.AddCommunityMemberPage.returnFromAddCommunityMemberPage(AddCommunityMemberPage.groovy:77)
> at
>
> org.tellurium.test.communitymember.TestAddCommunityMemberPage.returnFromAddCommunityMemberPage(TestAddCommunityMemberPage.java:216)
> 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:44)
> at
>
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
>
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37)
> at
>
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
> at
>
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
> at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
> at
>
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
> at
>
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
> 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)
> ...
>
> Regards,
>
> Setya
>
>
> > Do you mean Tellurium threw error at the following point?
> >
> > //Do something with uiModuleB here
> > ...
> >
> > If you call uiModuleB.WHATEVER_METHOD() and it could not find it?
> >
> > Could post your log of the exception here.
> >
> > Thanks,
> >
> > Jian
> >
> > On Thu, Sep 24, 2009 at 11:19 PM, Setya <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >
> > Hi all,
> >
> > Thank you for all your suggestions.
> >
> > Unfortunately we can not use the same way as the given example by
> Jon.
> > Since we already put the ui definitions into their own groovy files
> we
> > want to reuse them without changing anything.
> >
> > Following Jian suggestions, here's our test case :
> >
> > UiModule uiModuleA = new UiModule();
> > uiModuleA.defineUi();
> >
> > UiModule uiModuleB = new UiModule();
> > uiModuleB.defineUi();
> >
> > //The following URL directs us to uiModuleA
> > TelluriumJavaTestCase#connectURL(url);
> >
> > //Do something with uiModuleA here
> > ...
> >
> > //The following directs us to uiModuleB
> > click <link to uiModuleB>
> >
> > //Do something with uiModuleB here
> > ...
> >
> > From above test case, the difference with Jian's suggestion is, we
> do
> > not connect another URL for uiModuleB. Our problem is when we
> > arrive at
> > uiModuleB, Tellurium seems always look for methods defined in
> > uiModuleA,
> > resulting no method found, etc.
> >
> > I hope I can explain the problem clearly.
> >
> >
> > Regards,
> >
> > Setya
> >
> > > Thanks for sharing your example. Yes, that should also work. Each
> > > sub-module that starts with a "ui." will not affect each other when
> > > Tellurium does the Java object to runtime locator mapping. Of
> > course,
> > > the first UIDs must be different for them. Under the hood,
> Tellurium
> > > will build a separate object tree for each sub-module starting
> > with "ui.".
> > >
> > > Thanks,
> > >
> > > Jian
> > >
> > > On Thu, Sep 24, 2009 at 7:56 PM, JalexRTL <[email protected]
> > <mailto:[email protected]>
> > > <mailto:[email protected] <mailto:[email protected]>>>
> wrote:
> > >
> > >
> > > I believe I had a similar project that I was working on
> > today testing
> > > UI modules on separate web pages. This format worked for me:
> > >
> > > public void defineUi() {
> > > ui.Container(uid:
> > > "Main",...............{
> > > Form(uid: "Login",.......
> > > InputBox(uid:
> > > "Username",......
> > > }
> > > ui.Container(uid:
> > > "Root",................{
> > > UrlLink(uid:
> > > "Logout",............
> > > }
> > > }
> > >
> > > To access the elements I had to prefix them with the
> > Container uid.
> > > ex:
> > > type "Main.Login.Username", username
> > > click "Root.Logout"
> > >
> > > -Jon Alexander-
> > > Recommended Test Labs
> > >
> > >
> > >
> > >
> > >
> > > >
> >
> >
> >
> >
> >
> > >
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"tellurium-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/tellurium-users?hl=en
-~----------~----~----~----~------~----~------~--~---