Did you call the defineUi() method?
For example, your ui module is defined as
class MyUiModule extends DslContext {
public void defineUi() {
ui.Container(uid: "Table", clocator: [tag: "table"]){
InputBox(uid: "Q", clocator: [tag: "input", title: "Google Search",
class: "lst", name: "q"])
SubmitButton(uid: "GoogleSearch", clocator: [tag: "input", type:
"submit", class: "lsb", value: "Google Search", name: "btnG"])
SubmitButton(uid: "ImFeeling", clocator: [tag: "input", type:
"submit", class: "lsb", value: "I'm Feeling Lucky", name: "btnI"])
}
}
Then you need to call the defineUi() method before you use the UI module.
Be aware, the "ui." is actually a UI parser.
http://code.google.com/p/aost/wiki/UserGuide070AppendixB#What_Is_the_ui._in_UI_Module
?
Once the UI module is parsed, the UI objects are stored in an object
registry so that
you can find them.
Hope this helps.
Thanks,
Jian
On Thu, Nov 18, 2010 at 8:24 AM, Icarus <[email protected]> wrote:
> The browser is running now.
>
> However, when I use the uiModule file generated from using TruMP IDE,
> I get UIModuleObjectNotFoundError.
>
> org.telluriumsource.exception.UiObjectNotFoundException: Cannot find
> UI Object Table.Q
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
> Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
> at java.lang.reflect.Constructor.newInstance(Unknown Source)
> at
>
> org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:
> 77)
> at org.codehaus.groovy.runtime.callsite.ConstructorSite
> $ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:
> 102)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:
> 52)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:
> 190)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:
> 198)
> at
>
> org.telluriumsource.dsl.BaseDslContext.walkToWithException(BaseDslContext.groovy:
> 155)
> at org.telluriumsource.dsl.BaseDslContext
> $walkToWithException.callCurrent(Unknown Source)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:
> 44)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
> 141)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
> 153)
> at
> org.telluriumsource.dsl.BaseDslContext.keyType(BaseDslContext.groovy:
> 217)
> at
> org.telluriumsource.dsl.BaseDslContext$keyType.callCurrent(Unknown
> Source)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:
> 44)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
> 141)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
> 153)
> at NewGoogleStartPage.doGoogleSearch(NewGoogleStartPage.groovy:24)
> at
>
> GoogleStartPageJavaTestCase.testGoogleSearch(GoogleStartPageJavaTestCase.java:
> 22)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> 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.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> 76)
> at
>
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> 50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> 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:236)
> at
>
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
> 49)
> 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)
>
> Here is the UiModule file :
>
> ui.Container(uid: "Table", clocator: [tag: "table"]){
> InputBox(uid: "Q", clocator: [tag: "input", title: "Google Search",
> class: "lst", name: "q"])
> SubmitButton(uid: "GoogleSearch", clocator: [tag: "input", type:
> "submit", class: "lsb", value: "Google Search", name: "btnG"])
> SubmitButton(uid: "ImFeeling", clocator: [tag: "input", type:
> "submit", class: "lsb", value: "I'm Feeling Lucky", name: "btnI"])
> }
>
>
> I have enabled useTelluriumEngine(true);
>
> Thanks,
> Ic
>
>
> On Nov 18, 10:31 am, Icarus <[email protected]> wrote:
> > I realize that TruMP is for that.
> >
> > Thanks,
> > Ic
> >
> > On Nov 18, 10:10 am, Icarus <[email protected]> wrote:
> >
> > > Thanks John,
> >
> > > That was the missing method call. I am not getting a
> > > UiModelObjectNotFound Error, but think I need to just validate the Ui
> > > Module file.
> >
> > > Is there a method for us to validate if a UiModule applies to a
> > > particular web page ?
> >
> > > Thanks,
> > > Ic
> >
> > > On Nov 17, 4:30 am, Jian Fang <[email protected]> wrote:
> >
> > > > Did you call connectSeleniumServer() before connect to the web under
> > > > testing? Here is
> > > > an example.
> >
> > > > Thanks,
> >
> > > > Jian
> >
> > > > public class GoogleTest extends TelluriumJUnitTestCase {
> > > > private static GoogleSearchModule gsm;
> >
> > > > @BeforeClass
> > > > public static void initUi() {
> > > > gsm = new GoogleSearchModule();
> > > > gsm.defineUi();
> > > > connectSeleniumServer();
> > > > }
> >
> > > > @Before
> > > > public void stat8cconnectToGoogle() {
> > > > connectUrl("http://www.google.com");
> > > > }
> >
> > > > @Test
> > > > public void testGoogleSearch() {
> > > > gsm.doGoogleSearch("tellurium Groovy Test");
> > > > }
> >
> > > > @Test
> > > > public void testGoogleSearchFeelingLucky() {
> > > > gsm.doImFeelingLucky("tellurium automated Testing");
> > > > }
> >
> > > > }
> > > > On Tue, Nov 16, 2010 at 3:24 PM, Icarus <[email protected]> wrote:
> > > > > Hi,
> >
> > > > > I was following the tutorial for using Tellurium from Eclipse :
> >
> > > > > http://code.google.com/p/aost/wiki/CustomTelluriumEclipseProject
> >
> > > > > And I was able to get the project to run with some minor changes.
> >
> > > > > however,
> >
> > > > > When I run the testcases, I get the following error :
> >
> > > > > java.lang.NullPointerException: Cannot invoke method open() on null
> > > > > object
> > > > > at
> > > > >
> org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:
> > > > > 77)
> > > > > at
> >
> > > > >
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:
> > > > > 45)
> > > > > at
> >
> > > > >
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> > > > > 40)
> > > > > at
> > > > >
> org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:
> > > > > 32)
> > > > > at
> >
> > > > >
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> > > > > 40)
> > > > > at
> >
> > > > >
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
> > > > > 116)
> > > > > at
> >
> > > > >
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
> > > > > 124)
> > > > > at
> >
> > > > >
> org.telluriumsource.component.connector.SeleniumConnector.connectUrl(SeleniumConnector.groovy:
> > > > > 54)
> > > > > at
> >
> > > > >
> org.telluriumsource.test.java.BaseTelluriumJavaTestCase.connectUrl(BaseTelluriumJavaTestCase.java:
> > > > > 57)
> > > > > at
> >
> > > > >
> GoogleStartPageJavaTestCase.testGoogleSearch(GoogleStartPageJavaTestCase.java:
> > > > > 19)
> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
> Source)
> > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> > > > > at java.lang.reflect.Method.invoke(Unknown Source)
> > > > > 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.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> > > > > 76)
> > > > > at
> >
> > > > >
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> > > > > 50)
> > > > > at
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> > > > > at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> > > > > at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> > > > > at
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> > > > > at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> > > > > 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:236)
> > > > > at
> >
> > > > >
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
> > > > > 49)
> > > > > 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)
> >
> > > > > System Config :
> >
> > > > > Java: Sun Microsystems Inc. 16.3-b01
> > > > > OS: Windows 7 6.1 x86
> > > > > Tellurium : 0.7.0
> > > > > Eclipse : Helios (3.6.0)
> > > > > Groovy : 2.1.1
> >
> > > > > Here is the Console Log:
> >
> > > > > Parse configuration file: TelluriumConfig.groovy from project root
> > > > > directory
> > > > > Configure UI Object Builders using configuration
> > > > > Configure widget modules using configuration
> > > > > Configure event handler using configuration
> > > > > Configure data accessor using configuration
> > > > > Configure dispatcher using configuration
> > > > > Configure Embedded Selenium Server using configuration
> > > > > Warning: No user-extensions.js
> > > > > 01:50:50.325 INFO - Java: Sun Microsystems Inc. 16.3-b01
> > > > > 01:50:50.326 INFO - OS: Windows 7 6.1 x86
> > > > > 01:50:50.331 INFO - v1.0.1 [8491], with Core v...@version@
> [...@revision@]
> > > > > 01:50:50.437 INFO - Version Jetty/5.1.x
> > > > > 01:50:50.438 INFO - Started HttpContext[/selenium-server/driver,/
> > > > > selenium-server/driver]
> > > > > 01:50:50.440 INFO - Started HttpContext[/selenium-server,/selenium-
> > > > > server]
> > > > > 01:50:50.440 INFO - Started HttpContext[/,/]
> > > > > 01:50:50.449 INFO - Started SocketListener on 0.0.0.0:4444
> > > > > 01:50:50.450 INFO - Started org.mortbay.jetty.ser...@ec849e
> > > > > Configure Selenium Client using configuration
> > > > > 01:51:05.698 INFO - Stopping Acceptor
> > > > > ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=4444]
> > > > > 01:51:05.794 INFO - Stopped SocketListener on 0.0.0.0:4444
> > > > > 01:51:05.888 INFO - Stopped HttpContext[/selenium-server/driver,/
> > > > > selenium-server/driver]
> > > > > 01:51:05.974 INFO - Stopped HttpContext[/selenium-server,/selenium-
> > > > > server]
> > > > > 01:51:06.043 INFO - Stopped HttpContext[/,/]
> > > > > 01:51:06.043 INFO - Stopped org.mortbay.jetty.ser...@ec849e
> >
> > > > > Is this a known issue ?
> >
> > > > > --
> > > > > 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]<tellurium-users%[email protected]>
> <tellurium-users%[email protected]<tellurium-users%[email protected]>
> >
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/tellurium-users?hl=en.
>
> --
> 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]<tellurium-users%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/tellurium-users?hl=en.
>
>
--
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.