I changed the jQuery builder to use ":not(.class)" instead of
"[attribute!=value] " for the class attribute.
For the following UI module
ui.Container(uid: "repeat", clocator:[tag: "div"]){
Repeat(uid:'expender',clocator:[tag:'div',class:'Expander
!narrow'],respond:['click']){
UrlLink(uid: "link", clocator:[:])
}
Repeat(uid:'narrow',clocator:[tag:'div',class:'Expander
narrow'],respond:['click']){
UrlLink(uid: "link", clocator:[:])
}
}
The dump(repeat) result is shown as follows,
Dump locator information for repeat
-------------------------------------------------------
repeat: jquery=div
repeat.expender[1]: jquery=div div.Expander:not(.narrow):eq(0)
repeat.expender[1].link: jquery=div div.Expander:not(.narrow):eq(0) a
repeat.narrow[1]: jquery=div div.Expander.narrow:eq(0)
repeat.narrow[1].link: jquery=div div.Expander.narrow:eq(0) a
-------------------------------------------------------
Please update the core from our Maven repo or download it directly from
http://maven.kungfuters.org/content/repositories/snapshots/org/telluriumsource/tellurium-core/0.7.0-SNAPSHOT/tellurium-core-0.7.0-20100302.215943-103.jar
Please let us know if this works for you.
One more suggestion is to use a Container as the top level UI element
instead of the Repeat object, try to turn on UI module cache and see if
anything goes wrong with Repeat as the top level UI element (might be fine,
I don't remember now).
Thanks,
Jian
On Tue, Mar 2, 2010 at 4:20 PM, Jian Fang <[email protected]> wrote:
> Dominic,
>
> Look into core code and yes, it generates [attribute!=value] selector for
> your first repeat object.
> Seems we should handle the class attribute differently from other
> attributes. We will add a fix
> soon so that you don't need to manually call the "not" selector.
>
> Thanks,
>
> Jian
>
> On Tue, Mar 2, 2010 at 12:56 PM, dominicm <[email protected]>wrote:
>
>> Hi,
>>
>> I have two sets of elements on a page that I need to distinguish
>> between.
>>
>> <div class="Expander">
>> ...
>> < /div>
>>
>> <div class="Expander narrow">
>> ...
>> < /div>
>>
>> For the first I'm using
>>
>> ui.Repeat(uid:'largePodContainer',clocator:[tag:'div',class:'Expander !
>> narrow'],respond:['click']){
>> ...
>> }
>>
>> ui.Repeat(uid:'largePodContainer',clocator:[tag:'div',class:'Expander
>> narrow'],respond:['click']){
>> ...
>> }
>>
>> When in debug mode I tried the generated selector for the first
>> element i.e
>> teJQuery(selenium.browserbot.findElement("jquery=div.Expander[class!
>> =narrow]"))
>>
>> Unfortunately this returns all instances of elements 1 and 2 as it
>> would appear that the [attribute!=value] selector does not work well
>> with multiple css classes as it treats the attribute field as text,
>> and none of the elements have a class attribure equal to "narrow".
>>
>> What does work is this:
>>
>> teJQuery(selenium.browserbot.findElement("jquery=div.Expander")).not(".narrow")
>>
>> --
>> 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.