No feature proposals off the top of my head right now, but you will be sure to hear from me if I come up with anything.
Regards, Jonathan On 11 May 2010 17:53, Jian Fang <[email protected]> wrote: > Seems in real world, there are always exceptions. > > BTW, Jonathan, since you used Tellurium a lot. Do you have any feature > proposal > or other suggestions to make 0.8.0 easier to use than 0.7.0? We haven't > decided > the 0.8.0 tasks yet. But Trump will be on the top of the list. > > Thanks, > > Jian > > On Tue, May 11, 2010 at 9:38 AM, Jonathan Share <[email protected]> wrote: >> >> Yes I agree the id in the DOM _should_ be unique, but the team that >> wrote the app I am testing obviously hasn't had any kind of basic >> education in how HTML should be used (and this is a purchased product >> so no real chance of getting this fixed). But I will give the partial >> matching trick a try next time I trip over this kind of problem. >> >> On 11 May 2010 15:26, Jian Fang <[email protected]> wrote: >> > Thanks Jonathan. >> > >> > The id in the DOM should be unique and id selector is the fastest one. >> > That >> > is why jQuery >> > and Tellurium use id only and throw away other parts. >> > >> > If you really need to use other attributes, you can try to use partial >> > matching, i.e., if the ID is "aaa" >> > you can try "*aaa". Then tellurium will not optimize the generated >> > selector. >> > >> > Thanks, >> > >> > Jian >> > >> > On Tue, May 11, 2010 at 4:07 AM, Jonathan Share <[email protected]> >> > wrote: >> >> >> >> I've seen this behaviour several times before and haven't yet set >> >> aside time to create a reduced test case, but the problem for me has >> >> been that that the selector used matches more than one html element. >> >> Note that when you use id in a clocator with CSSSelectors then >> >> tellurium throws away the definition of the containing elements and >> >> starts the selector from the element id. >> >> >> >> Therefore if you have another element on the page with the id >> >> saveButton you are probably matching that as well. After noticing this >> >> behaviour I have begun to avoid using id wherever possible in >> >> preference for name on form elements. >> >> >> >> Hope this helps, >> >> >> >> Jonathan >> >> >> >> On 11 May 2010 03:15, Jian Fang <[email protected]> wrote: >> >> > If you use Tellurium 0.7.0, please turn on the Engine log using >> >> > >> >> > useEngineLog(true) >> >> > >> >> > so that Selenium core will return JavaScript error stack. Also, you >> >> > can >> >> > use >> >> > the >> >> > firebug or firebug lite bundled in Selenium server 1.0.1-te3 to see >> >> > the >> >> > log >> >> > from console >> >> > and look at which line caused the problem. >> >> > >> >> > Thanks, >> >> > >> >> > Jian >> >> > >> >> > On Mon, May 10, 2010 at 7:11 PM, super fan 911 >> >> > <[email protected]> >> >> > wrote: >> >> >> >> >> >> I have the following snippet of HTML code for a pop up window: >> >> >> >> >> >> <div id="alertDeleteConfirm" class="popupModalWindow"> >> >> >> <div class="top"> >> >> >> <h1>Delete Confirmation</h1> >> >> >> <a onclick="cancelDelete();return false;" href="#" >> >> >> class="closeModal">Close</a> >> >> >> </div> >> >> >> <div class="main"> >> >> >> Are you sure you want to delete this?<br> >> >> >> <br> >> >> >> <br> >> >> >> </div> >> >> >> <div class="actions"><button onclick="confirmDelete();" >> >> >> id="deleteButton" class="smallPrimary"><span style="text-align: >> >> >> center;">Delete</span></button> >> >> >> <button onclick="cancelDelete();return false;" >> >> >> id="cancelButton" >> >> >> class="smallSecondary"><span>Cancel</span></button> >> >> >> </div> >> >> >> </div> >> >> >> >> >> >> I have defined the following UI definition: >> >> >> >> >> >> ui.Container(uid: "delete_confirmation_popup", >> >> >> clocator: >> >> >> [tag: >> >> >> "div", id: "alertDeleteConfirm"]) { >> >> >> TextBox(uid: "title", clocator: [tag: "h1"]) >> >> >> UrlLink(uid: "close", cloator: [text: >> >> >> "Close", >> >> >> class: >> >> >> "closeModal"]) >> >> >> TextBox(uid: "message", clocator: [tag: >> >> >> "div", >> >> >> class: "main"]) >> >> >> Button(uid: "delete", clocator: [tag: >> >> >> "button", >> >> >> id: >> >> >> "saveButton", >> >> >> class: "smallPrimary"], respond: ["click"]) >> >> >> Button(uid: "cancel", clocator: [tag: >> >> >> "button", >> >> >> id: >> >> >> "cancelButton", >> >> >> class: "smallSecondary"], respond: ["click"]) >> >> >> } >> >> >> >> >> >> When I do a isElementPresent for all the UI objects, they all return >> >> >> true. But, when I do a click on 'close', 'delete' they gives me a >> >> >> selenium error. The 'cancel' works. Below is the selenium stack >> >> >> trace, >> >> >> >> >> >> com.thoughtworks.selenium.SeleniumException: ERROR: Command >> >> >> execution >> >> >> failure. Please search the forum at http://clearspace.openqa.org for >> >> >> error details from the log window. The error message is: >> >> >> element.dispatchEvent is not a function >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java: >> >> >> 97) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java: >> >> >> 91) >> >> >> 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 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 >> >> >> 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 >> >> >> 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.event.EventHandler >> >> >> $_click_closure6.doCall(EventHandler.groovy:145) >> >> >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: >> >> >> 273) >> >> >> at >> >> >> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java: >> >> >> 66) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >> >> >> 151) >> >> >> at org.telluriumsource.component.event.EventHandler >> >> >> $_click_closure6.doCall(EventHandler.groovy) >> >> >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: >> >> >> 273) >> >> >> 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: >> >> >> 121) >> >> >> at org.telluriumsource.component.event.EventHandler >> >> >> $_processEvents_closure1.doCall(EventHandler.groovy:85) >> >> >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: >> >> >> 273) >> >> >> at >> >> >> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >> >> >> at groovy.lang.Closure.call(Closure.java:276) >> >> >> at groovy.lang.Closure.call(Closure.java:289) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java: >> >> >> 1176) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java: >> >> >> 1152) >> >> >> at org.codehaus.groovy.runtime.dgm$114.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: >> >> >> 125) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.telluriumsource.component.event.EventHandler.processEvents(EventHandler.groovy: >> >> >> 83) >> >> >> 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: >> >> >> 44) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java: >> >> >> 56) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.telluriumsource.component.event.EventHandler.click(EventHandler.groovy: >> >> >> 144) >> >> >> at org.telluriumsource.component.event.EventHandler >> >> >> $click.call(Unknown Source) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: >> >> >> 40) >> >> >> at org.telluriumsource.component.event.EventHandler >> >> >> $click.call(Unknown Source) >> >> >> at org.telluriumsource.dsl.BaseDslContext >> >> >> $_click_closure4.doCall(BaseDslContext.groovy:168) >> >> >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: >> >> >> 273) >> >> >> 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.ui.object.UrlLink.click(UrlLink.groovy:26) >> >> >> at org.telluriumsource.ui.object.UrlLink$click.call(Unknown >> >> >> Source) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java: >> >> >> 90) >> >> >> at >> >> >> org.telluriumsource.dsl.BaseDslContext.click(BaseDslContext.groovy: >> >> >> 166) >> >> >> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite >> >> >> $PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:246) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java: >> >> >> 51) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java: >> >> >> 44) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >> >> >> 143) >> >> >> at >> >> >> >> >> >> >> >> >> >> >> >> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >> >> >> 151) >> >> >> ... Removed 65 stack frames >> >> >> >> >> >> >> >> >> I need some pointers on how to fix this issue. Thanks in advance! >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> 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. >> >> > >> >> >> >> -- >> >> 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. >> > >> >> -- >> 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. > -- 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.
