I added the support for the style attribute partial matching as follows,
protected static String attrStyle(String style) {
String val = style
if (val == null || val.trim().length() == 0) {
return "[style]"
}
if (val.startsWith(START_PREFIX)) {
return "[style^=${val.substring(1)}]"
} else if (val.startsWith(END_PREFIX)) {
return "[style\$=${val.substring(1)}]"
} else if (val.startsWith(ANY_PREFIX)) {
return "[style*=${val.substring(1)}]"
} else if (val.startsWith(NOT_PREFIX)) {
return "[style!=${val.substring(1)}]"
} else {
return ":styles(${val})"
}
}
Please update Tellurium core and custom selenium server from our Maven
repo.
Let us know if you run into any further problems.
Thanks,
Jian
On Tue, Apr 27, 2010 at 12:09 PM, Jian Fang <[email protected]>wrote:
> Anyway, I will add partial matching support to the style attribute, but
> wouldn't consider partial
> matching for multiple styles in the same style definition.
>
> Thanks,
>
> Jian
>
>
> On Tue, Apr 27, 2010 at 11:58 AM, Jonathan Share <[email protected]>wrote:
>
>> Yes, it should be possible to change my definition to use "display:
>> block", I'll try it out tomorrrow.
>>
>> On 27 April 2010 17:10, Jian Fang <[email protected]> wrote:
>> > The reason why style is handled differently was because style may
>> include
>> > multiple style definitions.
>> > We had to define a custom jquery selector for this purpose.
>> >
>> >
>> http://code.google.com/p/aost/wiki/CustomJQuerySelectorInTellurium#:styles
>> >
>> > That is why, the jQuery builder handles it differently as follows,
>> >
>> > protected static String attrStyle(String style){
>> > String val = style
>> > if(val == null || val.trim().length() == 0){
>> > return "[style]"
>> > }
>> >
>> > return ":styles(${val})"
>> > }
>> >
>> > I haven't thought of your use case yet. Would it be fine for you to
>> define
>> > the style as, for example, "display: block;"?
>> > which seems to be a more normal style. If not, I need to change the
>> jquery
>> > builder to address your use case.
>> >
>> > Thanks,
>> >
>> > Jian
>> >
>> > On Tue, Apr 27, 2010 at 9:38 AM, Jonathan Share <[email protected]>
>> wrote:
>> >>
>> >> Hi,
>> >>
>> >> I have the following ui definition;
>> >>
>> >> ui.Form(uid: "groupSearch", clocator: [id: "GroupSearch"]){
>> >> Container(uid: "departure"){
>> >> Selector(uid: "time", clocator: [name: "outbound/timeSelect",
>> >> style: '*block'])
>> >> }
>> >> }
>> >>
>> >> However when I try and call;
>> >>
>> >> selectByValue "groupSearch.departure.time", outboundTime
>> >>
>> >> I get the following exception;
>> >>
>> >> com.thoughtworks.selenium.SeleniumException: ERROR: Element
>> >>
>> uimcal={"rid":"groupSearch.departure.time","locator":"jquery=#GroupSearch
>> >> select:styles(*block)[name=outbound/timeSelect]"} not found
>> >>
>> >> Why has my indended match on the style attribute been transformed to a
>> >> :styles() selector? This seems like a digression from the
>> >> documentation for Composite Locator. Note also that I can't seem to
>> >> find any documentation of the styles notation in the jQuery Selectors
>> >> documentation so I can't look there for a possible workaround in my
>> >> notation.
>> >>
>> >> I've worked around the issue for now by manually specifying the
>> locator;
>> >>
>> >> Selector(uid: "time", locator: "
>> >> select[name='outbound/timeSelect'][style*='block']")
>> >>
>> >> however I would prefer to use the clocator if possible.
>> >>
>> >> Regards,
>> >>
>> >> Jonathan
>> >>
>> >> --
>> >> 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]<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.