Do you mean debugging Tellurium Engine code, which is nontrivial because they are JavaScript code.
However, this is a workaround there, i.e., you can use the Trump 0.8.0 to test Tellurium command "check". Please do the following steps: 1) Install Firefox "JavaScript Debugger" from https://addons.mozilla.org/en-US/firefox/addon/216/ 2) Open Trump IDE 0.8.0, record the check boxes 3) Generate the UI module and click the "Add" button 4) Open JavaScript debugger, click on the browser list and find the check method from the tellurium-cmd.js and put a breakpoint there 5) Click "Test" button on Trump IDE and select the command name "check" and the appropriate UID. 6) Click "Run" button on the Trump IDE, the JavaScript debugger should stop at the breakpoint. 7) Then you can step through the code. The Engine code in Trump is not exact the same as the one in the custom selenium server, but hope you can reproduce your problem there. Thanks, Jian On Fri, Jul 23, 2010 at 12:10 PM, Jade <[email protected]> wrote: > Hi Jian, > > I looked at the example and I added a few more diagnostic tests. I'm > still stumped as to why this line of code > > boolean checked = upm > > > .isChecked("Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[1]"); > > produces this error: com.thoughtworks.selenium.SeleniumException: > ERROR: Element is not a toggle-button. > > Here are the diagnose results in case this sheds light on anything: > > Diagnosis Result for > Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[1] > > ------------------------------------------------------- > > Matching count: 1 > > Match Elements: > > --- Element 1 --> > > <input name="LIST_ASSIGNED_TO" value="ASSIGNED_TO" checked="checked" > type="checkbox"> > > > Parents: > > --- Parent 1 --- > > <li class="ds-form-item odd"> > <div class="ds-form-content"> > <fieldset id="N100E3" class="ds-checkbox-field settings_onclick"> > <label> > <input name="LIST_ASSIGNED_TO" value="ASSIGNED_TO" checked="checked" > type="checkbox">Assigned To</label> > </fieldset> > </div> > </li> > > > Closest: > > > Closest: > > --- closest element 1 --- > > <input name="LIST_ASSIGNED_TO" value="ASSIGNED_TO" checked="checked" > type="checkbox"> > > It looks like it's finding the checkbox but I can't use the checkbox > in any methods such as getValue() or isChecked() > > stack trace: > > com.thoughtworks.selenium.SeleniumException: ERROR: Element is not a > toggle-button. > at > > com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java: > 97) > at > > com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java: > 91) > at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > 25) > at java.lang.reflect.Method.invoke(Method.java:597) > 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.GeneratedMethodAccessor56.invoke(Unknown Source) > 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: > 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.GeneratedMethodAccessor55.invoke(Unknown Source) > 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: > 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.AbstractCallSite.call(AbstractCallSite.java: > 129) > at > > org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(BundleProcessor.groovy: > 322) > at org.telluriumsource.component.bundle.BundleProcessor > $passBundledCommand.callCurrent(Unknown Source) > at > > org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcessor.groovy: > 414) > at org.telluriumsource.component.bundle.BundleProcessor > $process.callCurrent(Unknown Source) > at > > org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundleProcessor.groovy: > 427) > at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source) > 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: > 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.data.Accessor.isChecked(Accessor.groovy: > 52) > at > org.telluriumsource.component.data.Accessor$isChecked.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: > 129) > at org.telluriumsource.dsl.BaseDslContext > $_isChecked_closure36.doCall(BaseDslContext.groovy:497) > 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: > 88) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > at > > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: > 272) > 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: > 125) > at org.telluriumsource.ui.object.CheckBox.isChecked(CheckBox.groovy: > 48) > at org.telluriumsource.ui.object.CheckBox$isChecked.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: > 125) > at > org.telluriumsource.dsl.BaseDslContext.isChecked(BaseDslContext.groovy: > 495) > at > > test.admin.SettingsJUnitTestCase.testSetUserPreferences(SettingsJUnitTestCase.java: > 78) > 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.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: > 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) > > Is there a piece of code in tellurium that I should put a breakpoint > on to check a value? > > Thanks, > > Jade > > On Jul 23, 9:05 am, Jian Fang <[email protected]> wrote: > > The ui-examples reference project includes a List example, which you can > > find from 0.7.0 release tar ball, or from here: > > > > http://code.google.com/p/aost/source/browse/trunk/reference-projects/... > > > > We will look at your problem and see what was wrong there. From the error > > message itself, > > seems the getInputValue(element) function did not return a String, thus, > it > > did not have the trim() > > method on it. We need to create a mock test case to locate the root > cause. > > > > Thanks, > > > > Jian > > > > On Fri, Jul 23, 2010 at 9:48 AM, Jade <[email protected]> wrote: > > > Hi Jian, > > > > > The issue is that this jquery script timed out even though I'm only > > > accessing one item so I must either have an error in the script or > > > something wrong with my environment: > > > > > runScript > > > ("teJQuery('input:checkbox[name=LIST_COLUMN_ASSIGNED_TO]').click();"); > > > > > I also tried to iterate through the items in the list to individually > > > click them but I'm having a problem with the syntax for accessing each > > > item. I've read the Reference documentation many times. If someone on > > > the team has a chance to include junit or testng tests or tests > > > written in groovy that access the items defined in the defineUI() > > > method with each snippet of the module code in the documentation, that > > > would help newbies a lot with the syntax! > > > > > I'm having problems accessing each list element: > > > > > public void doSetAllCheckboxes(boolean checked) { > > > > > String filterList = > > > "Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList" > > > int len = getListSize(filterList) > > > > > for (int i = 1; i <= len; ++i) { > > > if (checked) { > > > def value = > > > > getValue("Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[2]") > > > // > > > for debugging > > > //def item = filterList[i]; > > > > > // error on next line: SeleniumException: ERROR: Element is not a > > > toggle-button > > > if (! > > > > > > isChecked("Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[$ > > > {i}]")) { > > > click > > > "Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[$ > > > {i}]" > > > pause 300 // for ajax > > > String script = > > > > > > "isChecked(\"Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[$ > > > {i}]\");"; > > > waitForCondition script, 30000 > > > } > > > } > > > } > > > // This times out > > > //runScript > > > ("teJQuery('input:checkbox[name=LIST_COLUMN_ASSIGNED_TO]').click();"); > > > } > > > > > This line: > > > > > def value = > > > > > > getValue("Formprefs.ListTabOptions.FilterOptionsListFieldset.FilterOptionsList[2]") > > > > > gives me this stack trace: > > > > > com.thoughtworks.selenium.SeleniumException: ERROR: Command execution > > > failure. Please search the Tellurium User Group at > > >http://groups.google.com/group/tellurium-usersfor error details from > > > the log window. The error message is: getInputValue(element).trim is > > > not a function > > > at > > > > > > com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java: > > > 97) > > > at > > > > > > com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java: > > > 91) > > > at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > > > 25) > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > 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.GeneratedMethodAccessor56.invoke(Unknown Source) > > > 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: > > > 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.GeneratedMethodAccessor55.invoke(Unknown Source) > > > 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: > > > 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.AbstractCallSite.call(AbstractCallSite.java: > > > 129) > > > at > > > > > > org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(BundleProcessor.groovy: > > > 322) > > > at org.telluriumsource.component.bundle.BundleProcessor > > > $passBundledCommand.callCurrent(Unknown Source) > > > at > > > > > > org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcessor.groovy: > > > 414) > > > at org.telluriumsource.component.bundle.BundleProcessor > > > $process.callCurrent(Unknown Source) > > > at > > > > > > org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundleProcessor.groovy: > > > 427) > > > at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source) > > > 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: > > > 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 > -- 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.
