Hi,
I am using below line to click date in calender ie.cell(:class => " rich-calendar-input rich-calendar- button",:text=>"Monday",:text=>"March").click; but i am getting exception. c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/element.rb:56:in `assert_ex ists': Unable to locate element, using {:class=>" rich-calendar-input rich-calen dar-button", :text=>"March"} (Watir::Exception::UnknownObjectException) from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ element.rb:288 :in `enabled?' from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ element.rb:60: in `assert_enabled' from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ element.rb:233 :in `click!' from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ element.rb:219 :in `click' from Event-Insert-play.rb:21 On Jun 30, 11:04 pm, Chuck van der Linden <sqa...@gmail.com> wrote: > You have to ask yourself how much value you provide to your project by > testing some third party tool beyond it's being integrated properly > into your product. > > If it was me, I'd look for the most expedient way to get the value I > needed 'set' If the calendar has an input box that accepts my typing > into it, then doing something similar to that in your tests might be > the best route. As always with any tool that drives the browser > (Watir, Selenium, etc) you look at 'what do I do manually to control > this thing?' and then basically find ways to simulate that using the > automation code. If it LETS you just click in a given spot and input > a value, then that's what I'd try to automate in most of my cases > (beyond one basic test that the calendar works when you pick the date > that way) > > But some of these tools, the ONLY way to get the date into the field > is by 'picking' it from the calendar, and there is no 'manual entry' > option that lets you 'type' in a value. So you are stuck automating > the clicking on specific cells in the calendar. To do that you need > to write a script that's going to work a month or a year from now, so > you'll need to go throught the motions of clicking in the portion (a > sub table in the example I looked at) of the control that lets you > pick the year and month, Then picking the year and month, THEN picking > the day of the month. Otherwise a day from now you'll be clicking on > July 30 instead of June 30 > > Based on the sample I looked at, almost all of those are going to > be .cell elements, and hopefully just doing a 'click' on the element > will work for what you need. > > On Jun 30, 5:51 am, Wesley Chen <cjq....@gmail.com> wrote: > > > If you are not sure what you want to do, please try the cases you have. > > > Wesley. > > For life, the easier, the better. > > > On Wed, Jun 30, 2010 at 1:38 PM, naresh <nareshvatsa...@gmail.com> wrote: > > > Hi, > > > > I am confused in rich calender, i need to click image and then get > > > elements or > > > do like following > > > > ie.cell(:class => "j_id354_j_id355DayCell rich-calendar-cell rich- > > > calendar-btn", :text => "16").click which Linden suggested. > > > > I am confused class, there is 2 classes in HTML code. > > > class="rich-calendar-input " > > > class="rich-calendar-button" > > > which one to use. > > > My requirement to select a 30-jun-2010 date from calender. > > > > Regards, > > > Naresh > > > > On Jun 29, 8:32 pm, Chuck van der Linden <sqa...@gmail.com> wrote: > > > > If it's the same as the sample that was linked early in the thread, > > > > when this control is rendered in the UI, it is a series of table > > > > cells, and each cell is 'wired' for a number of events. You may need > > > > to experiment with what events are fired in what order, I'd start > > > > however with trying the following > > > > > What you are looking at is structured around a table, and each date is > > > > a cell. Because some dates appear more than once you cannot reliably > > > > identify by the cell text alone, and will need to use some other means > > > > to identify the 'right' type of cell that has the right text. The ID > > > > is completely positional within the grid, meaning that it's > > > > relationship to the date will be different each month (7 > > > > possibilties). that makes using ID to get the right cell a total > > > > pain. This would seem to make the best option to utilize the CLASS of > > > > the cell, since the controll uses a small set of potential classes > > > > (borders, holidays, workdays) So using Class along with Text might > > > > be your best bet, presuming of course that you want to pick a date in > > > > the current month of the current year etc. (otherwise you are going > > > > to need to first click in the navigation cell, part of an inner table, > > > > that lets you pick month and year. OTOH since those values are > > > > unique, you should be able to select them by cell text alone. > > > > > .. So it will depend on if you test uses some date relative to > > > > 'today' or is always picking the same date. Relative to Today is > > > > fairly easy given Ruby's fairly robust stuff for handling dates, but > > > > is problimatic in that the date could end up falling on a holiday, > > > > meaning it would be difficult to predict the cell's class ahead of > > > > time > > > > > If you are going to always pick the same date, choose one that is NOT > > > > in the current month, otherwise your script will break as soon as the > > > > month changes. This means you will first need to set the calendar > > > > control to a specific year and month, THEN pick your day of the week. > > > > > Identify it as a Cell element within a Table, In the example the > > > > main table container in the example has the Class "rich-calendar- > > > > exterior rich-calendar-popup undefined" > > > > > The cells for dates have three potential classes, there's a special > > > > one for 'border' days (the dates in the months before or after the > > > > current month) one for the 'holidays' (sat and sun) and one for the > > > > weekdays of the current month.. > > > > > If I wanted to pick a weekday of the current month, then once the > > > > proper thing is clicked to make the calendar visiable (rendered) you > > > > could so something along these lines I think > > > > > browser.cell(:class => "j_id354_j_id355DayCell rich-calendar-cell rich- > > > > calendar-btn", :text => "16").click > > > > > Since I'm not too sure of the first part of that class (might be > > > > dynamically created) you might have to use a regular expression just > > > > using the second part (/rich-calendar-cell rich-calendar-btn/) in > > > > order to reliably identify the cell by class and text. > > > > > (that presumes just doing a click is good enough, potentially you > > > > might have to fire other events, you'll need to experiment) > > > > > The IE developer Toolbar is a great help in making sense of controls > > > > like this, as it allows you to view the control as it is rendered into > > > > the DOM, (Firebug has similary abilities, I just know how to use the > > > > IE tool better, so it's what I use) > > > > > On Jun 28, 5:07 am, naresh <nareshvatsa...@gmail.com> wrote: > > > > > > Hi All, > > > > > > i am using internet explorer to test my web application. > > > > > I have to click save button in my application to create record. > > > > > I am able to set value for textfield,radibutton,selectlist in watir > > > > > script , > > > > > but not able to set/pickup value for calender. > > > > > This calender is rich calender<rich:calender> from Rcihfaces. > > > > > The html code generated i am pasting once again. > > > > > I want to pick up date like 28-May-2010 or any other date. > > > > > > <div id="globalForm:startDateDecorate"> > > > > > <div class="prop"><label > > > > > for="globalForm:startDateDecorate:startDate" class="name ">Start > > > > > Date:</label> > > > > > <span class="value "><span > > > > > id="globalForm:startDateDecorate:startDatePopup"> > > > > > <input class="rich-calendar-input " > > > > > id="globalForm:startDateDecorate:startDateInputDate" > > > > > name="globalForm:startDateDecorate:startDateInputDate" > > > > > style="vertical- > > > > > align: middle; " type="text" /><img alt="" class="rich-calendar-button > > > > > " id="globalForm:startDateDecorate:startDatePopupButton" > > > > > style="vertical-align: middle" src="/venus/a4j/g/ > > > > > 3_3_1.GAorg.richfaces.renderkit.html.iconimages.CalendarIcon/DATB/ > > > > > eAE7fv4Kw6znAA4mA-w_" /><input > > > > > id="globalForm:startDateDecorate:startDateInputCurrentDate" > > > > > name="globalForm:startDateDecorate:startDateInputCurrentDate" > > > > > style="display:none" type="hidden" value="06/2010" /></span><div > > > > > id="globalForm:startDateDecorate:startDateIFrame" style="display: > > > > > none;"></div><div id="globalForm:startDateDecorate:startDate" > > > > > style="display: none;"></div><div > > > > > id="globalForm:startDateDecorate:startDateScript" style="display: > > > > > none;"><script type="text/javascript">new > > > > > Calendar('globalForm:startDateDecorate:startDate', {dayListTableId: > > > > > 'globalForm:startDateDecorate:startDateDay', > > > > > weekNumberBarId: > > > > > 'globalForm:startDateDecorate:startDateWeekNum', > > > > > weekDayBarId: > > > > > 'globalForm:startDateDecorate:startDateWeekDay', > > > > > currentDate: new Date(2010,5,25), > > > > > selectedDate: null, > > > > > datePattern: 'dd-MM-yyyy', > > > > > jointPoint: 'bottom-left', > > > > > direction: 'bottom-right', > > > > > boundaryDatesMode:'inactive', > > > > > popup: true, > > > > > enableManualInput: true, > > > > > showInput: true, > > > > > disabled: false, > > > > > readonly: false, > > > > > ajaxSingle: true, > > > > > verticalOffset:0, > > > > > horizontalOffset: 0, > > > > > style:'z-index: 3; ', > > > > > firstWeekDay: 0, > > > > > minDaysInFirstWeek: 1, > > > > > todayControlMode:'select', > > > > > showHeader:true, > > > > > showFooter:true, > > > > > showWeeksBar:true, > > > > > showWeekDaysBar:true, > > > > > showApplyButton:false, > > > > > > > ... > > read more » -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. You received this message because you are subscribed to http://groups.google.com/group/watir-general To post: watir-general@googlegroups.com To unsubscribe: watir-general+unsubscr...@googlegroups.com