In Trump, you first need to click on the elements on your page so that the "record stack" has some elements, and then click the "generate" button.
On 18 Jan 2011, at 13:13, Szewczyk Dratewka <[email protected]> wrote: Actually that was the first thing I tried, however the result was : - [error] Error generating UI module and commands: message: this.tagObjectArray[i] is null, name: TypeError, filename: chrome://source/content/uicreator/uimodule-alg.js, linenumber: 234. JavaScript Error Stack: {anonymous}()@chrome://source/content/uicreator/uimodule-alg.js:442 {anonymous}(null)@chrome://source/content/workspace.js:764 {anonymous}()@chrome://source/content/workspace.js:520 {anonymous}()@chrome://source/content/recorder.js:556 {anonymous}([object BeforeUnloadEvent])@chrome://source/content/recorder.js:111 That's why I'm trying to figure out how to do this "by hand". On Tue, Jan 18, 2011 at 2:08 PM, Rohit Vats <[email protected]> wrote: > You can download the Trump IDE plugin for firefox. That will automatically > generate the UI modules for your elements as you click on them. > > > On 18 Jan 2011, at 12:49, Szewczyk Dratewka <[email protected]> wrote: > > Thanks, setting the values to false gets the test working. I didn't know > that using > tellurium engine and css selectors had implications on using xpath. This > makes me think > that maybe I don't have to use xpath at all. Till now I've been trying to > use it to solve a case > in which there is a bunch of links like so: > > <div class='menu'> > <a href=" <http://www.foo.com/>http://www.foo.com > "><span>Foo</span></a> > <a href=" <http://www.foo.com/>http://www.bar.com > "><span>Bar</span></a> > </div> > > and I want to get the foo link. Now if there was no <span> inside, I could > just use > ui.UrlLink(uid: "TheLink", clocator : [tag :"a", text : "Foo"]) > > but the <span> makes it more difficult. Obviously I can use xpath to do > this, but > is there a better alternative? > > Thanks, > dratewka > > p.s. I know that java would be better, but this is just a sandbox project. > > On Tue, Jan 18, 2011 at 1:23 PM, Jian Fang < <[email protected]> > [email protected]> wrote: > >> The real problem is caused by the following two lines: >> useTelluriumEngine(true); >> useCssSelector(true) >> >> First, Tellurium engine does not use xpath. Second, you cannot use CSS >> selector because >> you use xpath. Please simply replace the above two lines with the >> following line >> >> useCssSelector(false) >> >> BTW, seems you use a groovy class to extend the JUnit Java class. You >> better use a Java class. >> >> Thanks, >> >> Jian >> >> On Tue, Jan 18, 2011 at 5:51 AM, dratewka < <[email protected]> >> [email protected]> wrote: >> >>> Hello everybody, >>> >>> recently I've been trying to get tellurium to work with the project >>> I'm working on, however >>> it has been a bumpy road so far. >>> I've set up the environment using >>> >>> mvn archetype:create -DgroupId=your_group_id - >>> DartifactId=your_artifact_id \ >>> -DarchetypeArtifactId=tellurium-junit-archetype \ >>> -DarchetypeGroupId=org.telluriumsource -DarchetypeVersion=0.7.0 \ >>> -DarchetypeRepository=<http://maven.kungfuters.org/content/repositories/> >>> http://maven.kungfuters.org/content/repositories/ >>> releases >>> >>> >>> and made a simple web page to play around with xpath locators. >>> The problem is, that they don't seem to work. At all. >>> >>> Here is a simple example - the web page : >>> >>> <html> >>> <head></head> >>> <body> >>> <a href=" <http://www.foo.com>http://www.foo.com">Foo</a> >>> </body> >>> </html> >>> >>> >>> Ui module : >>> >>> public class FooModule extends DslContext{ >>> >>> public void defineUi() { >>> ui.UrlLink(uid: "TheLink", locator : "//a"); >>> } >>> } >>> >>> Test : >>> public class FooTestCase extends TelluriumJUnitTestCase{ >>> >>> private static FooModule foo; >>> >>> @BeforeClass >>> public static void initUi() { >>> foo = new FooModule(); >>> foo.defineUi(); >>> connectSeleniumServer(); >>> useTelluriumEngine(true); >>> useCssSelector(true) >>> >>> useTrace(true); >>> } >>> >>> @Before >>> public void connectToLocal() { >>> connectUrl("file:///C:/Temp/html/index.html") >>> } >>> >>> @Test >>> public void execFlow1(){ >>> foo.click "TheLink" >>> pause 10000 >>> } >>> >>> } >>> >>> Now, if I change the ui module to : >>> ui.UrlLink(uid: "TheLink", clocator : [tag :"a"]) >>> then everything works fine. However running it with the locator >>> described above I get: >>> >>> com.thoughtworks.selenium.SeleniumException: ERROR: Command execution >>> failure. Please search the Tellurium User Group at >>> <http://groups.google.com/group/tellurium-users> >>> http://groups.google.com/group/tellurium-users for error details from >>> the log window. The error message is: Syntax error, unrecognized >>> expression: >>> at >>> >>> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java: >>> 97) >>> at >>> >>> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java: >>> 91) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>> 39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>> 25) >>> at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite >>> $PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java: >>> 229) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java: >>> 52) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>> 129) >>> at >>> >>> org.telluriumsource.component.connector.CustomSelenium.getBundleResponse(CustomSelenium.groovy: >>> 257) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>> 39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>> 25) >>> at >>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>> 88) >>> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >>> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058) >>> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>> at >>> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java: >>> 149) >>> at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown >>> Source) >>> at >>> >>> org.telluriumsource.component.dispatch.Dispatcher.methodMissing(Dispatcher.groovy: >>> 56) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>> 39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>> 25) >>> at >>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>> 88) >>> at >>> groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java: >>> 813) >>> at >>> groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java: >>> 1107) >>> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060) >>> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java: >>> 39) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: >>> 40) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>> 117) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>> 129) >>> at >>> >>> org.telluriumsource.component.bundle.BundleProcessor.flush(BundleProcessor.groovy: >>> 372) >>> at org.telluriumsource.component.bundle.BundleProcessor >>> $flush.call(Unknown Source) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: >>> 40) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>> 117) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>> 121) >>> at >>> >>> org.telluriumsource.framework.TelluriumFramework.pause(TelluriumFramework.groovy: >>> 371) >>> at >>> >>> org.telluriumsource.test.java.BaseTelluriumJavaTestCase.pause(BaseTelluriumJavaTestCase.java: >>> 156) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>> 39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>> 25) >>> at >>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>> 88) >>> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >>> at >>> groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java: >>> 1326) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.callStatic(StaticMetaClassSite.java: >>> 47) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java: >>> 48) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java: >>> 167) >>> at >>> >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java: >>> 175) >>> at test.FooTestCase.execFlow1(FooTestCase.groovy:32) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>> 39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>> 25) >>> 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.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.junit.runner.JUnitCore.run(JUnitCore.java:157) >>> at >>> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: >>> 65) >>> >>> >>> >>> >>> According to tellurium manual such a locator using xpath should be >>> valid, >>> so I don't know what's going on. >>> >>> I'm running the test using Firefox 3.6.10 on a Windows 7 box. >>> >>> >>> Regards, >>> dratewka >>> >>> -- >>> 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]> >>> [email protected]. >>> To unsubscribe from this group, send email to >>> <tellurium-users%[email protected]> >>> [email protected]. >>> For more options, visit this group at >>> <http://groups.google.com/group/tellurium-users?hl=en> >>> 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]> >> [email protected]. >> To unsubscribe from this group, send email to >> <tellurium-users%[email protected]> >> [email protected]. >> For more options, visit this group at >> <http://groups.google.com/group/tellurium-users?hl=en> >> 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. > > -- > 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. -- 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.
