This is a migrated thread and some comments may be shown as answers.

Set date in calendar

7 Answers 251 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Vaishali
Top achievements
Rank 1
Vaishali asked on 27 Nov 2013, 03:24 PM
Hello,

I m having the following issue:
(1) I cannot playback the step of clicking on a calendar icon. I went to view source and checked the name and id of the calendar. The name and id of calendar are changing everytime. If at all I am able to click the calendar I cannot playback the step of selecting a different year.

Can I somehow set the date without actually clicking on the calendar and selecting a date? The text field beside the calendar is read only.

I m new to Telerik. Please help.


P.S. Please see below the error that I get.

Failure Information: ~~~~~~~~~~~~~~~Unable to locate element. Details: Attempting to find [Html] element using Find logic (Html): [id 'Exact' image289] AND [tagname 'Exact' img]Unable to locate element. Search failed!Element was found by backup search only! We recommend editing the element to correct the primary find expression. Backup search: 'xpath=/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[1]/td[1]/div[2]/table[1]/tbody[1]/tr[43]/td[2]/p[1]/a[1]/img[1]'



Thank You,

Vaishali

7 Answers, 1 is accepted

Sort by
0
Mario
Top achievements
Rank 1
answered on 27 Nov 2013, 07:14 PM
Could you provide the html snippet of the calendar?  I might be able to help, but would need to see how the calendars html is structured.

From my experience, automating calendar clicks on specific dates (when no text field exists) is way too much work for the actual task you are trying to accomplish.

Mario
0
Vaishali
Top achievements
Rank 1
answered on 27 Nov 2013, 07:36 PM
Please find the HTML code snippet and image attached (calendar image). If possible please help me to enter date in read only input field without clicking on the calendar icon.

Thank you.





<
A HREF="javascript:openCalendar('FormName.issueDate')" onMouseOver = "document.images['image134'].src='/papa11/images/SignCalendar_r.gif'" onMouseOut   = "document.images['image134'].src='/papa11/images/SignCalendar.gif'"/><IMG NAME="image134" SRC="/papa11/images/SignCalendar.gif" border="0"  align="absbottom" vspace="1" alt="" /></A>
0
Mario
Top achievements
Rank 1
answered on 27 Nov 2013, 07:49 PM
Can you find the html of the actual calendar?  Look at the screenshot I attached to this for an example. 
0
Vaishali
Top achievements
Rank 1
answered on 27 Nov 2013, 08:06 PM
<!DOCTYPE HTML<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  
  
  
  
  
  
  
  
  
<HTML>
<HEAD>
  
<TITLE>Calendar</TITLE>
<meta HTTP-EQUIV="refresh" CONTENT="2400;URL=/papa11/timeout.gtc">
<script language="JavaScript">
//  written by Tan Ling Wee on 2 Dec 2001
//  last updated 28 Mar 2002
//  email : fuushikaden@yahoo.com
    var fixedX = -1         // x position (-1 if to appear 
  
below control)
    var fixedY = -1         // y position (-1 if to appear 
  
below control)
    var startAt = 1         // 0 - sunday ; 1 - monday
    var showWeekNumber = 1  // 0 - don't show; 1 - show
    var showToday = 1       // 0 - don't show; 1 - show
    var imgDir = "/papa11/images/"          // directory for 
  
images ... e.g. var imgDir="/img/"
  
    var gotoString = "Go To Current Month"
    var todayString = "Today is"
    var weekString = "Wk"
    var scrollLeftMessage = "Click to scroll to previous month. Hold mouse 
  
button to scroll automatically."
    var scrollRightMessage = "Click to scroll to next month. Hold mouse 
  
button to scroll automatically."
    var selectMonthMessage = "Click to select a month."
    var selectYearMessage = "Click to select a year."
    var selectDateMessage = "Select [date] <span title=as_date>as 
  
date.</span>" // do not replace [date], it will be replaced by date.
    var clearCalendarMessage = "Click to clear the calendar."
  
    var crossobj, crossMonthObj, crossYearObj, monthSelected, 
  
yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, 
  
monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, 
  
timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear
  
    var bPageLoaded=false
    var ie=document.all
    var dom=document.getElementById
  
    var ns4=document.layers
    var today = new Date()
    var dateNow  = today.getDate()
    var monthNow = today.getMonth()
    var yearNow  = today.getFullYear()
    var imgsrc = new Array
  
("calendar_drop1.gif","calendar_drop2.gif","calendar_left1.gif","calendar_left
  
2.gif","calendar_right1.gif","calendar_right2.gif")
    var img = new Array()
    var formName = true
  
  function submitForm() {
    var date = constructDate(dateSelected,monthSelected,yearSelected);
    var dateFormat = 'US';
    if (dateFormat == 'EU') {
       var dateUS = document.Calendar.elements['issueDate'].value;
      // alert(dateUS);
       var dateEU = dateUS.substring(8,10) + "-" + dateUS.substring(5,7) + "-" 
  
+ dateUS.substring(0,4);
       if (!formName ){
           window.opener.document.issueDate.value = dateEU;
        }else{
            window.opener.document.FormName.elements['issueDate'].value = 
  
dateEU;
        }
      // alert(dateEU);
    }else if( dateFormat == 'AE'){
       var dateUS = document.Calendar.elements['issueDate'].value;
       var dateEU = dateUS.substring(8,10) + "." + dateUS.substring(5,7) + "." 
  
+ dateUS.substring(0,4);
       if (!formName ){
          window.opener.document.issueDate.value = dateEU;
       }else{
        window.opener.document.FormName.elements['issueDate'].value = dateEU;
       }
    } else {  
          
           if (!formName){
            window.opener.document.issueDate.value =date;
        }else{
            window.opener.document.FormName.elements['issueDate'].value = 
  
date;
            }
    }
    if(yearSelected == 0){
      if (!formName){
            window.opener.document.issueDate.value = "";
      }else{
            window.opener.document.FormName.elements['issueDate'].value = 
  
"";
        }
      }
  
    var callFunc = 'doNothing';
    if (callFunc != 'doNothing') window.opener.doNothing;
   
    callOnUnload();
    document.Calendar.submit();
    window.close();
  }
  
  function clearCalendar(){
    dateSelected = 0
    monthSelected = -1
    yearSelected = 0
  
    hideCalendar();
    ctlToPlaceValue.value = constructDate
  
(dateSelected,monthSelected,yearSelected)
    submitForm()
  
      
  }
    
  
    function HolidayRec (d, m, y, desc)
    {
        this.d = d
        this.m = m
        this.y = y
        this.desc = desc
    }
  
    var HolidaysCounter = 0
    var Holidays = new Array()
  
    function addHoliday (d, m, y, desc)
    {
        Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
    }
  
    if (dom)
    {
        for (i=0;i<imgsrc.length;i++)
        {
            img[i] = new Image
            img[i].src = imgDir + imgsrc[i]
        }
        document.write ("<div id='calendar' 
  
style='position:absolute;visibility:hidden;'><table width="+
  
((showWeekNumber==1)?250:220)+" style='font-family:arial;font-
  
size:11px;border-width:1px;border-style:solid;border-color:#a0a0a0;font-
  
family:arial; font-size:11px}' bgcolor='#ffffff'><tr 
  
bgcolor='#0000aa'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td 
  
style='padding:2px;font-family:arial; font-size:11px;'><font 
  
color='#ffffff'><B><span id='caption'></span></B></font></td><td 
  
align=right><a href='javascript:hideCalendar();self.close();'><IMG 
  
SRC='"+imgDir+"calendar_close.gif' WIDTH='15' HEIGHT='13' BORDER='0' 
  
ALT='Close the Calendar'></a></td></tr></table></td></tr><tr><td 
  
style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>")
              
        if (showToday==1)
        {
            document.write ("<tr bgcolor=#f0f0f0><td 
  
style='padding:5px' align=center><span id='lblToday'></span></td></tr>")
        }
              
        document.write ("</table></div><div id='selectMonth' 
  
style='position:absolute;visibility:hidden;'></div><div id='selectYear' 
  
style='position:absolute;visibility:hidden;'></div>");
    }
  
    var monthName = new Array(  "January",
                                "February",
                                "March",
                                "April",
                                "May",
                                "June",
                                "July",
                                "August",
                                "September",
                                "October",
                                "November",
                                "December")
    if (startAt==0)
    {
        dayName = new Array("Sun",
                            "Mon",
                            "Tue",
                            "Wed",
                            "Thu",
                            "Fri",
                            "Sat")
    }
    else
    {
        dayName = new Array("Mon",
                            "Tue",
                            "Wed",
                            "Thu",
                            "Fri",
                            "Sat",
                            "Sun")
    }
    var styleAnchor="text-decoration:none;color:black;"
    var styleLightBorder="border-style:solid;border-width:1px;border-
  
color:#a0a0a0;"
  
    function swapImage(srcImg, destImg){
        if (ie) { document.getElementById(srcImg).setAttribute
  
("src",imgDir + destImg) }
    }
  
    function init() {
   
        if (!ns4)
              
        
//          if (!ie) { yearNow += 1900  }
          
            crossobj=(dom)?document.getElementById
  
("calendar").style : ie? document.all.calendar : document.calendar
            hideCalendar()
  
            crossMonthObj=(dom)?document.getElementById
  
("selectMonth").style : ie? document.all.selectMonth    : document.selectMonth
  
            crossYearObj=(dom)?document.getElementById
  
("selectYear").style : ie? document.all.selectYear : document.selectYear
  
                              
            monthConstructed=false;
            yearConstructed=false;
  
            if (showToday==1)
            {
                document.getElementById("lblToday").innerHTML 
  
=   todayString + " <a onmousemove='window.status=\""+gotoString+"\"' 
  
onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' 
  
href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar
  
();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + 
  
dateNow + " " + monthName[monthNow].substring(0,3)  + " " + 
  
yearNow + "</a>"
            }
  
            sHTML1="<span id='spanLeft' style='border-
  
style:solid; border-width:1px; border-color:#3366FF;cursor:pointer' 
  
onmouseover='swapImage
  
(\"changeLeft\",\"calendar_left2.gif\");this.style.borderColor=\"#88AAFF\";win
  
dow.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' 
  
onmouseout='clearInterval(intervalID1);swapImage
  
(\"changeLeft\",\"calendar_left1.gif\");this.style.borderColor=\"#3366FF\";win
  
dow.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout
  
(\"StartDecMonth()\",500)'  onmouseup='clearTimeout
  
(timeoutID1);clearInterval(intervalID1)'> <IMG id='changeLeft' 
  
SRC='"+imgDir+"calendar_left1.gif' width=10 height=10 
  
BORDER=0> </span> "
            sHTML1+="<span id='spanRight' style='border-
  
style:solid; border-width:1px; border-color:#3366FF;cursor:pointer' 
  
onmouseover='swapImage
  
(\"changeRight\",\"calendar_right2.gif\");this.style.borderColor=\"#88AAFF\";w
  
indow.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval
  
(intervalID1);swapImage
  
(\"changeRight\",\"calendar_right1.gif\");this.style.borderColor=\"#3366FF\";w
  
indow.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout
  
(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'    
  
onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> <IMG 
  
id='changeRight' SRC='"+imgDir+"calendar_right1.gif'    width=10 height=10 
  
BORDER=0> </span> "
            sHTML1+="<span id='spanMonth' style='border-
  
style:solid; border-width:1px; border-color:#3366FF;cursor:pointer' 
  
onmouseover='swapImage
  
(\"changeMonth\",\"calendar_drop2.gif\");this.style.borderColor=\"#88AAFF\";wi
  
ndow.status=\""+selectMonthMessage+"\"' onmouseout='swapImage
  
(\"changeMonth\",\"calendar_drop1.gif\");this.style.borderColor=\"#3366FF\";wi
  
ndow.status=\"\"' onclick='popUpMonth()'></span> "
            sHTML1+="<span id='spanYear' style='border-
  
style:solid; border-width:1px; border-color:#3366FF;cursor:pointer' 
  
onmouseover='swapImage
  
(\"changeYear\",\"calendar_drop2.gif\");this.style.borderColor=\"#88AAFF\";win
  
dow.status=\""+selectYearMessage+"\"'   onmouseout='swapImage
  
(\"changeYear\",\"calendar_drop1.gif\");this.style.borderColor=\"#3366FF\";win
  
dow.status=\"\"'    onclick='popUpYear()'></span> "
            sHTML1+="<span id='clearCalendar' style='border-
  
style:solid;border-width:1px;border-color:#3366FF;cursor:pointer' 
  
onmouseover='this.style.borderColor=\"#FF0000
  
\";window.status=\""+clearCalendarMessage+"\"'  
  
onmouseout='this.style.borderColor=\"#3366FF\";window.status=\"\"'  
  
onclick='clearCalendar()'></span> "
              
            document.getElementById("caption").innerHTML  = sHTML1
  
            bPageLoaded=true
        var dateFormat = 'US';
        var date = '';
        if (!formName ){
            date = window.opener.document.issueDate.value ;
        }else {
            date = window.opener.document.FormName.elements
  
['issueDate'].value;
          }
        if (dateFormat == 'EU'){
            date = date.substring(6,10) + "-" + date.substring(3,5) + "-" 
  
+ date.substring(0,2);
                     
        }
        document.Calendar.elements['issueDate'].value = date;
          
       popUpCalendar(this, document.Calendar.elements['issueDate'], 'yyyy-mm-
  
dd');//
        }
    }
  
    function hideCalendar() {
        crossobj.visibility="hidden"
        if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
        if (crossYearObj != null)
  
{crossYearObj.visibility="hidden"}
  
        //Closing a popup window when user clicked 'x', close the 
  
calendar. Added by D.T.
        self.closed
    }
  
    function padZero(num) {
        return (num < 10)? '0' + num : num ;
    }
  
    function constructDate(d,m,y)
    {   
        sTmp = dateFormat
        sTmp = sTmp.replace ("dd","<e>")
        sTmp = sTmp.replace ("d","<d>")
        sTmp = sTmp.replace ("<e>",padZero(d))
        sTmp = sTmp.replace ("<d>",d)
        sTmp = sTmp.replace ("mmm","<o>")
        sTmp = sTmp.replace ("mm","<n>")
        sTmp = sTmp.replace ("m","<m>")
        sTmp = sTmp.replace ("<m>",m+1)
        sTmp = sTmp.replace ("<n>",padZero(m+1))
        sTmp = sTmp.replace ("<o>",monthName[m])
        return sTmp.replace ("yyyy",y)
    }
  
    function closeCalendar() {
        var sTmp
    var tmpDate = new Date()
    var tmpCompareDate = ''
        
    if(tmpCompareDate != '' && (Date.UTC
  
(yearSelected,monthSelected,dateSelected) < Date.UTC() || Date.UTC
  
(yearSelected,monthSelected,dateSelected) > Date.UTC(tmpDate.getUTCFullYear(), 
  
tmpDate.getUTCMonth(), tmpDate.getUTCDate())))
    {
      alert("The Date Must Be Later Than Earliest Displayed Date And Earlier 
  
Than Today\'s Date")
    }
    else
    {
      hideCalendar();
      ctlToPlaceValue.value =   constructDate
  
(dateSelected,monthSelected,yearSelected)
      
      //Submit the selected date to servlet(servletPath). Added by J.K 2003-
  
05-29
      submitForm()
  
      //Closing popup window when date is selected. Added By D.T.
      ///self.close()
    }
    }
  
    /*** Month Pulldown ***/
  
    function StartDecMonth()
    {
        intervalID1=setInterval("decMonth()",80)
    }
  
    function StartIncMonth()
    {
        intervalID1=setInterval("incMonth()",80)
    }
  
    function incMonth () {
        monthSelected++
        if (monthSelected>11) {
            monthSelected=0
            yearSelected++
        }
        constructCalendar()
    }
  
    function decMonth () {
        monthSelected--
        if (monthSelected<0) {
            monthSelected=11
            yearSelected--
        }
        constructCalendar()
    }
  
    function constructMonth() {
        popDownYear()
        if (!monthConstructed) {
            sHTML = ""
            for (i=0; i<12; i++) {
                sName = monthName[i];
                if (i==monthSelected){
                    sName = "<B>" + sName + "</B>"
                }
                sHTML += "<tr><td id='m" + i + "' 
  
onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
  
onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' 
  
onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar
  
();popDownMonth();event.cancelBubble=true'> " + sName + 
  
" </td></tr>"
            }
  
            document.getElementById("selectMonth").innerHTML = 
  
"<table width=70    style='font-family:arial; font-size:11px; border-
  
width:1px; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' 
  
cellspacing=0 onmouseover='clearTimeout(timeoutID1)'    
  
onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()
  
\",100);event.cancelBubble=true'>" +    sHTML + "</table>"
  
            monthConstructed=true
        }
    }
  
    function popUpMonth() {
        constructMonth()
        crossMonthObj.visibility = (dom||ie)? "visible" : "show"
        if(crossobj.left == "")
            crossMonthObj.left = 50;
        else
            crossMonthObj.left = parseInt(crossobj.left) + 50;
              
        if(crossobj.top == "")
            crossMonthObj.top = 26;
        else
            crossMonthObj.top = parseInt(crossobj.top) + 26;
    }
  
    function popDownMonth() {
        crossMonthObj.visibility= "hidden"
    }
  
    /*** Year Pulldown ***/
  
    function incYear() {
        for (i=0; i<7; i++){
            newYear = (i+nStartingYear)+1
            if (newYear==yearSelected)
            { txtYear = " <B>" + newYear + 
  
"</B> " }
            else
            { txtYear = " " + newYear + " " }
            document.getElementById("y"+i).innerHTML = txtYear
        }
        nStartingYear ++;
    }
  
    function decYear() {
        for (i=0; i<7; i++){
            newYear = (i+nStartingYear)-1
            if (newYear==yearSelected)
            { txtYear = " <B>" + newYear + 
  
"</B> " }
            else
            { txtYear = " " + newYear + " " }
            document.getElementById("y"+i).innerHTML = txtYear
        }
        nStartingYear --;
    }
  
    function selectYear(nYear) {
        yearSelected=parseInt(nYear+nStartingYear);
        yearConstructed=false;
        constructCalendar();
        popDownYear();
    }
  
    function constructYear() {
        popDownMonth()
        sHTML = ""
        if (!yearConstructed) {
  
            sHTML = "<tr><td align='center' 
  
onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
  
onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' 
  
style='cursor:pointer'  onmousedown='clearInterval
  
(intervalID1);intervalID1=setInterval(\"decYear()\",30)' 
  
onmouseup='clearInterval(intervalID1)'>-</td></tr>"
  
            j = 0
            nStartingYear = yearSelected-3
            for (i=(yearSelected-3); i<=(yearSelected+3); i++) 
  
{
                sName = i;
                if (i==yearSelected){
                    sName = "<B>" + sName + "</B>"
                }
  
                sHTML += "<tr><td id='y" + j + "' 
  
onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
  
onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' 
  
onclick='selectYear("+j+");event.cancelBubble=true'> " + sName + 
  
" </td></tr>"
                j ++;
            }
  
            sHTML += "<tr><td align='center' 
  
onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
  
onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' 
  
style='cursor:pointer' onmousedown='clearInterval
  
(intervalID2);intervalID2=setInterval(\"incYear()\",30)'    
  
onmouseup='clearInterval(intervalID2)'>+</td></tr>"
  
            document.getElementById("selectYear").innerHTML = 
  
"<table width=44 style='font-family:arial; font-size:11px; border-width:1px; 
  
border-style:solid; border-color:#a0a0a0;'  bgcolor='#FFFFDD' 
  
onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout
  
(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"  
  
+ sHTML + "</table>"
  
            yearConstructed = true
        }
    }
  
    function popDownYear() {
        clearInterval(intervalID1)
        clearTimeout(timeoutID1)
        clearInterval(intervalID2)
        clearTimeout(timeoutID2)
        crossYearObj.visibility= "hidden"
    }
  
    function popUpYear() {
        var leftOffset
  
        constructYear()
        crossYearObj.visibility = (dom||ie)? "visible" : "show"
        if(crossobj.left == "")
            leftOffset = document.getElementById
  
("spanYear").offsetLeft
        else
            leftOffset = parseInt(crossobj.left) + 
  
document.getElementById("spanYear").offsetLeft
        if (ie)
        {
            leftOffset += 6
        }
        crossYearObj.left = leftOffset
        if(crossobj.top == "")
            crossYearObj.top = 26
        else
            crossYearObj.top = parseInt(crossobj.top) + 26
    }
  
    /*** calendar ***/
  
    function WeekNbr(today)
    {
        Year = takeYear(today);
        Month = today.getMonth();
        Day = today.getDate();
        now = Date.UTC(Year,Month,Day+1,0,0,0);
        var Firstday = new Date();
        Firstday.setYear(Year);
        Firstday.setMonth(0);
        Firstday.setDate(1);
        then = Date.UTC(Year,0,1,0,0,0);
        var Compensation = Firstday.getDay();
        if (Compensation > 3) Compensation -= 4;
        else Compensation += 3;
        NumberOfWeek =  Math.round((((now-then)/86400000)
  
+Compensation)/7);
        return NumberOfWeek;
    }
  
    function takeYear(theDate)
    {
        x = theDate.getYear();
        var y = x % 100;
        y += (y < 38) ? 2000 : 1900;
        return y;
    }
  
  
    function constructCalendar () {
        var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
  
        var dateMessage
        var startDate = new Date 
  
(yearSelected,monthSelected,1)
        var endDate
  
        if (monthSelected==1)
        {
            endDate = new Date (yearSelected,monthSelected+1,1);
            endDate = new Date (endDate - (24*60*60*1000));
            numDaysInMonth = endDate.getDate()
        }
        else
        {
            numDaysInMonth = aNumDays[monthSelected];
        }
  
        datePointer = 0
        dayPointer = startDate.getDay() - startAt
          
        if (dayPointer<0)
        {
            dayPointer = 6
        }
  
        sHTML = "<table  border=0 style='font-family:verdana;font-
  
size:10px;'><tr>"
  
        if (showWeekNumber==1)
        {
            sHTML += "<td width=27><b>" + weekString + 
  
"</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img 
  
src='"+imgDir+"calendar_divider.gif' width=1></td>"
        }
  
        for (i=0; i<7; i++) {
            sHTML += "<td width='27' align='right'><B>"+ dayName
  
[i]+"</B></td>"
        }
        sHTML +="</tr><tr>"
          
        if (showWeekNumber==1)
        {
            sHTML += "<td align=right>" + WeekNbr(startDate) + 
  
" </td>"
        }
  
        for ( var i=1; i<=dayPointer;i++ )
        {
            sHTML += "<td> </td>"
        }
      
        for ( datePointer=1; datePointer<=numDaysInMonth; 
  
datePointer++ )
        {
            dayPointer++;
            sHTML += "<td align=right>"
            sStyle=styleAnchor
            if ((datePointer==odateSelected) && 
  
(monthSelected==omonthSelected) && (yearSelected==oyearSelected))
            { sStyle+=styleLightBorder }
  
            sHint = ""
            for (k=0;k<HolidaysCounter;k++)
            {
                if ((parseInt(Holidays[k].d)==datePointer)&&
  
(parseInt(Holidays[k].m)==(monthSelected+1)))
                {
                    if ((parseInt(Holidays[k].y)==0)||
  
((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
                    {
                        sStyle+="background-
  
color:#FFDDDD;"
                        sHint+=sHint==""?Holidays
  
[k].desc:"\n"+Holidays[k].desc
                    }
                }
            }
  
            var regexp= /\"/g
            sHint=sHint.replace(regexp,""")
  
            dateMessage
  
"onmousemove='window.status=\""+selectDateMessage.replace
  
("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' 
  
onmouseout='window.status=\"\"' "
  
            if ((datePointer==dateNow)&&(monthSelected==monthNow)
  
&&(yearSelected==yearNow))
            { sHTML += "<b><a "+dateMessage+" title=\"" + sHint + 
  
"\" style='"+sStyle+"' 
  
href='javascript:dateSelected="+datePointer+";closeCalendar();'><font 
  
color=#ff0000> " + datePointer + "</font> </a></b>"}
            else if (dayPointer % 7 == (startAt * -1)+1)
            { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" 
  
style='"+sStyle+"' href='javascript:dateSelected="+datePointer + 
  
";closeCalendar();'> <font color=#909090>" + datePointer + 
  
"</font> </a>" }
            else
            { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" 
  
style='"+sStyle+"' href='javascript:dateSelected="+datePointer + 
  
";closeCalendar();'> " + datePointer + " </a>" }
  
            sHTML += ""
            if ((dayPointer+startAt) % 7 == startAt) { 
                sHTML += "</tr><tr>" 
                if ((showWeekNumber==1)&&
  
(datePointer<numDaysInMonth))
                {
                    sHTML += "<td align=right>" + 
  
(WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + " </td>"
                }
            }
        }
  
        document.getElementById("content").innerHTML   = sHTML
        document.getElementById("spanMonth").innerHTML = " " + 
  
monthName[monthSelected] + " <IMG id='changeMonth' 
  
SRC='"+imgDir+"calendar_drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
        document.getElementById("spanYear").innerHTML = " " + 
  
yearSelected    + " <IMG id='changeYear' 
  
SRC='"+imgDir+"calendar_drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
    // added by J.K 2003-June-16
        //document.getElementById("clearCalendar").innerHTML =  
  
" CLEAR <IMG id='clearCalendar' SRC='"+imgDir+"calendar_drop1.gif' 
  
WIDTH='12' HEIGHT='10' BORDER=0>"
    document.getElementById("clearCalendar").innerHTML = ' CLEAR ';
    }
  
    function popUpCalendar(ctl, ctl2, format) {
        var leftpos=0
        var toppos=0
        if (bPageLoaded)
        {
            if ( crossobj.visibility == "hidden" ) {
                ctlToPlaceValue = ctl2
                dateFormat=format;
  
                formatChar = " "
                aFormat = dateFormat.split(formatChar)
                if (aFormat.length<3)
                {
                    formatChar = "/"
                    aFormat = dateFormat.split(formatChar)
                    if (aFormat.length<3)
                    {
                        formatChar = "."
                        aFormat = dateFormat.split
  
(formatChar)
                        if (aFormat.length<3)
                        {
                            formatChar = "-"
                            aFormat
  
dateFormat.split(formatChar)
                            if (aFormat.length<3)
                            {
                                // invalid 
  
date    format
                                formatChar=""
                            }
                        }
                    }
                }
  
                tokensChanged = 0
                if ( formatChar != "" )
                {
                    // use user's date
                    aData = ctl2.value.split(formatChar)
                      
                      
                      
                        for (i=0;i<3;i++)
                        {
                            if ((aFormat[i]=="d") 
  
|| (aFormat[i]=="dd"))
                            {
                                dateSelected
  
parseInt(aData[i], 10)
                                tokensChanged 
  
++
                            }
                            else if ((aFormat[i]
  
=="m") || (aFormat[i]=="mm"))
                            {
                                monthSelected 
  
=   parseInt(aData[i], 10) - 1
                                tokensChanged 
  
++
                            }
                            else if (aFormat[i]
  
=="yyyy")
                            {
                                yearSelected
  
parseInt(aData[i], 10)
                                tokensChanged 
  
++
                            }
                            else if (aFormat[i]
  
=="mmm")
                            {
                                for (j=0
  
j<12;   j++)
                                {
                                    if 
  
(aData[i]==monthName[j])
                                    {
                                          
  
monthSelected=j
                                          
  
tokensChanged ++
                                    }
                                }
                            }
                        }   
                }
  
                if ((tokensChanged!=3)||isNaN(dateSelected)
  
||isNaN(monthSelected)||isNaN(yearSelected))
                {
                    dateSelected = dateNow
                    monthSelected = monthNow
                    yearSelected = yearNow
                }
  
                odateSelected=dateSelected
                omonthSelected=monthSelected
                oyearSelected=yearSelected
  
                //Setting left and top of the calendar in a 
  
popUp window. Added by D.T.
                constructCalendar (1, monthSelected, 
  
yearSelected);
                crossobj.visibility=(dom||ie)? "visible" : 
  
"show"
            }
            else
            {
                hideCalendar()
                if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, 
  
format)}
            }
            ctlNow = ctl
        }
    }
  
  function callOnUnload(){
    var toCall = null
      
      
    var dateField = "";
    if (formName){
        dateField = window.opener.document.FormName.elements['issueDate']
    }else{
        dateField = window.opener.document.issueDate
    }
    setAllDates();
     if(toCall == 1)
    {
      dateField.focus()
    }
  }
function setAllDates(){
    var setAllFields = 'null';
    if (setAllFields == 'Y')    {
        var elements = window.opener.document.forms
  
['FormName'].elements;
        for (i=0; i<elements.length; i++){
            if( window.opener.document.forms['FormName'].elements
  
[i].name.indexOf( "paidDate")==0)
                window.opener.document.forms
  
['FormName'].elements[i].value = window.opener.document.forms
  
['FormName'].elements['allDates'].value;
        }
    }
}
  
  
    window.onload=init
    </script>
</HEAD>
<BODY onUnload="callOnUnload()">
  <FORM NAME="Calendar" METHOD="POST" ACTION="/papa11/main/close.jsp">
    <input name="Submit_Button" type="hidden" value="SelectCalendar">
    <input name="issueDate" type="hidden">
  </FORM>
  
</BODY>
</HTML>

Please find the html of the calendar as requested.

Thank You.
0
Vaishali
Top achievements
Rank 1
answered on 29 Nov 2013, 07:38 PM
Any update about this issue? Please help.
0
Mario
Telerik team
answered on 02 Dec 2013, 05:32 PM
Hi Vaishali,

Thank you for contacting Telerik Support, please excuse our delay in getting back to you.

Options for dealing with this scenario:

1) Even though the text field is read only, it may be suitable to use the SetText() method, which is essentially an 'Enter text' step with SimulateRealTyping disabled. To work around the fact that you cannot record such a step with the control disabled, please add the textbox element to your project explicitly via the 'Add to Project Elements' option from the Elements Menu. Once added just find it in the Elements Explorer, use the Steps Suggestions to add an Enter text step to your test and change the Text step property to the desired date (eg. 2013-12-27) you with to enter. This will be the easiest method but may not work depending on your application, if it doesn't try the next option.

2) Change how each element involved in clicking on the correct dates is found (link for example) in such a way as to not include dynamic id's, instead use text content or other unique properties to each element.

If neither option helps, please attach a step failure log for us to examine by double clicking the red X next to a failing step (like the one in your original post) and choose the option to Export. Then attach the created ZIP to this post.

Regards,
Mario
Telerik
The New Release of Telerik Test Studio Is Here! Download, install,
and send us your feedback!
0
Vaishali
Top achievements
Rank 1
answered on 02 Dec 2013, 09:07 PM
Hello Telerik Team,

The first option worked. Thanks very much. :)

Regards,

Vaishali
Tags
General Discussions
Asked by
Vaishali
Top achievements
Rank 1
Answers by
Mario
Top achievements
Rank 1
Vaishali
Top achievements
Rank 1
Mario
Telerik team
Share this question
or