Thanks Jian, That works now. There are still some issues with getListSize though.
In order to use the XPath version of getListSize you cannot just call getListSizeByXPath(), you have to disableJQuerySelector before the getListSize call then re enable JQuery. Just calling getListSizeByXPath() results in invalid xpath statements. 10:04:32.817 INFO - Command request: getXpathCount[jquery=#main div.myBox/div, ] on session 21c2e4d3b60942d497eb080078c8998a 10:04:32.858 INFO - Got result: ERROR: Invalid xpath: jquery=#main div.myBox/div on session 21c2e4d3b60942d497eb080078c8998a R On 14 May 2009, at 19:58, Jian Fang wrote: > I updated the trunk/core code to work around this problem and > redeployed core 0.6.0 to Maven repo. Please see the > InternalProfileTestCase. > > Later, we may need to re-visit this issue since the group locating > may be affected without the position information if we > have multiple elements with the same tag. > > Thanks, > > Jian > > On Thu, May 14, 2009 at 2:51 PM, Rohan Holt <[email protected]> > wrote: > That sounds like the easiest solution. Thanks for the update. > > R > > On 14 May 2009, at 19:39, Jian Fang wrote: > >> I created a test case using your html and UI module and can re- >> produce your error. >> Seems jQuery does have limitation/issue on the has() selector. One >> way to work around this >> is to let Tellurium core filter out the position attribute when >> build the has() selector. >> >> On Thu, May 14, 2009 at 12:23 PM, Jian Fang >> <[email protected]> wrote: >> Rohan, >> >> Thanks for reporting this. Just saw the post because of the Google >> outage. >> >> I will look into it. >> >> Mikhail, could you please add the html in the post to Tellurium >> test page so that I >> can create a test case for it? >> >> Thanks, >> >> Jian >> >> >> On Thu, May 14, 2009 at 11:06 AM, rohanh <[email protected]> >> wrote: >> >> Not sure if this is a Tellurium issue or a JQuery issue but given the >> following model >> >> Form(uid: "UserEditPrivateProfileForm", clocator: [tag: "form", >> name: "theForm", method: "post"], group: "true"){ >> /* >> InputBox(uid: "Address1" ,clocator: [tag: "input" , >> type: "text" ,name: "address1"]) >> InputBox(uid: "Address2" ,clocator: [tag: >> "input" , type: >> "text" ,name: "address2"]) >> InputBox(uid: "Address3" ,clocator: [tag: >> "input" , type: >> "text" ,name: "city"]) >> InputBox(uid: "PostCode" ,clocator: [tag: >> "input" , type: >> "text" ,name: "postcode"]) >> InputBox(uid: "Telephone" ,clocator: [tag: >> "input" , type: >> "text" ,name: "tel"]) >> InputBox(uid: "Email" ,clocator: [tag: >> "input" , type: >> "text" ,name: "email"]) >> Selector(uid: "Gender" ,clocator: [tag: "select", >> name: "gender"]) >> InputBox(uid: "Mobile" ,clocator: [tag: >> "input" , type: >> "text" ,name: "Mobile"]) >> */ >> List(uid: "Fields" , clocator: [tag: "div", class: >> "test", position: "2"], separator: "div") { >> Container(uid: "all") { >> InputBox(uid: "item" , clocator: [:]) >> Selector(uid: "selector", clocator: [:]) >> } >> } >> SubmitButton(uid: "Submit" ,clocator: [tag: >> "input" , type: >> "submit",name: "submit"], respond: ["click", "mouseOut", >> "mouseOver"]) >> } >> >> >> a call to getListSize("UserEditPrivateProfileForm.Fields") generates >> the following JQuery selector: >> >> 5:11:00.631 INFO - Command request: getListSize[jquery=#main form >> [name=theForm][method=post]:has(div.test:eq(1), input[type=submit] >> [name=submit]) div.test:eq(1), div] on session >> 65c1e3d5c462489cb6402b2d663a99ef >> 15:11:00.647 INFO - Got result: ERROR: Element jquery=#main form >> [name=theForm][method=post]:has(div.test:eq(1), input[type=submit] >> [name=submit]) div.test:eq(1) not found on session >> 65c1e3d5c462489cb6402b2d663a99ef >> >> The problem with this seems to be the :eq(1) within the has(). If I >> change the selector from >> >> #main form[name=theForm][method=post]:has(div.test:eq(1), input >> [type=submit][name=submit]) div.test:eq(1) >> >> to >> >> #main form[name=theForm][method=post]:has(div.test, >> input[type=submit] >> [name=submit]) div.test:eq(1) >> >> The correct List div is returned.... >> >> Maybe this is a restriction with JQuery but I am not sure. I would >> have expected a has() to take any valid selector... >> >> Here is the html to test with if you wish: >> >> <form method="post" name="theForm"> >> <div class="domtab3"> >> <ul class="domtabs3"> >> <li><a href="#t1" title="Internal >> Profile"><span>Internal Profile</span></a></li> >> <li><a href="#t2" title="Private Profile"><span>Private >> Profile</span></a></li> >> <li><a href="#t3" title="Public Profile"><span>Public >> Profile</span></a></li> >> <li><a href="#t4" title="Work History"><span>Work >> History</span></a></li> >> </ul> >> <INPUT TYPE="hidden" NAME="tabsub" ID="tabsub" >> VALUE="internal"> >> <div class="test"> >> <span><a name="t1" id="t1"></a></span> >> </div> >> <div class="test"> >> <span><a name="t2" id="t2"></a></span> >> <div> >> <div>Address</div> >> <div><input type="text" name="address1" >> value="address line 1" size="40" ></div> >> </div> >> <div> >> <div></div> >> <div><input type="text" name="address2" >> value="address line 2" size="40" ></div> >> </div> >> <div> >> <div></div> >> <div><input type="text" name="city" value="address >> line 3" size="30" ></div> >> </div> >> <div> >> <div>Postcode</div> >> <div><input type="text" name="postcode" >> value="postcode" size="30" ></div> >> </div> >> <div> >> <div>Tel*</div> >> <div><input type="text" value="" size="30" >> name="tel"></div> >> </div> >> <div> >> <div>Email*</div> >> <div><input type="text" >> value="[email protected]" size="30" name="email"></div> >> </div> >> <INPUT TYPE="submit" NAME="submit" VALUE="Save" >> class='submit' onClick="d=document.getElementById >> ('tabsub');d.value='private';return true;"> >> </div> >> <div class="test"> >> <span><a name="t3" id="t3"></a></span> >> <div> >> <div>Name</div> >> <div><input type="text" size="30" >> name="newusername" value="admin"></div> >> </div> >> <div> >> <div><strong>Birth Date</strong></div> >> <div><input name="Birth Date" type="text" size="30" >> value=""></div> >> </div> >> <div> >> <div><strong>Job Title</strong></div> >> <div><input name="Job Title" type="text" size="30" >> value=""></div> >> </div> >> <div> >> <div><strong>Company</strong></div> >> <div><input name="Company" type="text" size="30" >> value=""></div> >> </div> >> >> <INPUT TYPE="submit" NAME="submit" VALUE="Save" >> class='submit' onClick="d=document.getElementById >> ('tabsub');d.value='public';"> >> </div> >> <div class="test"> >> <span><a name="t4" id="t4"></a></span> >> <a href="/members/admin/index_edit.html? >> add_new_job=1">Add new job...</a><br><br> >> <INPUT TYPE="submit" NAME="submit" VALUE="Save" >> class='submit' onClick="d=document.getElementById >> ('tabsub');d.value='jobs';;return 1;"> >> </div> >> </div> >> </form> >> >> >> >> >> >> >> > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
