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"><span>Foo</span></a> <a href="http://www.bar.com <http://www.foo.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]> 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]> 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/ >> 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">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 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]. >> 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]<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.
