2016-11-11 5 views
1

Wir haben einen Kalender, der auf bootstrap-datepicker basiert. Ich versuche, einen bestimmten Tag auszuwählen, sagen wir sysdate oder sydate-2 oder sysdate-3. Ein Ansatz, den ich fand, ist, findElements zu verwenden und die List Schleife durchlaufen, bis eines der Elemente das aktuelle Datum mit equalsIgnoreCase übereinstimmt.Einen Tag aus dem Kalender auswählen - datepicker - aus Winkelmesser basierend auf dem heutigen Datum

Aber ich möchte dies in JS erreichen, um in meinen Protractor Testfällen zu verwenden.

Unten ist die Struktur der Tabelle:

<tbody> 
    <tr> 
     <td class="day old disabled">30</td> 
     <td class="day old disabled">31</td> 
     <td class="day disabled">1</td> 
     <td class="day disabled">2</td> 
     <td class="day disabled">3</td> 
     <td class="day disabled">4</td> 
     <td class="day disabled">5</td> 
    </tr> 
    <tr> 
     <td class="day disabled">6</td> 
     <td class="day disabled">7</td> 
     <td class="day">8</td> 
     <td class="day">9</td> 
     <td class="day">10</td> 
     <td class="day active today">11</td> 
     <td class="day disabled">12</td> 
    </tr> 
    <tr> 
     <td class="day disabled">13</td> 
     <td class="day disabled">14</td> 
     <td class="day disabled">15</td> 
     <td class="day disabled">16</td> 
     <td class="day disabled">17</td> 
     <td class="day disabled">18</td> 
     <td class="day disabled">19</td> 
    </tr> 
    <tr> 
     <td class="day disabled">20</td> 
     <td class="day disabled">21</td> 
     <td class="day disabled">22</td> 
     <td class="day disabled">23</td> 
     <td class="day disabled">24</td> 
     <td class="day disabled">25</td> 
     <td class="day disabled">26</td> 
    </tr> 
    <tr> 
     <td class="day disabled">27</td> 
     <td class="day disabled">28</td> 
     <td class="day disabled">29</td> 
     <td class="day disabled">30</td> 
     <td class="day new disabled">1</td> 
     <td class="day new disabled">2</td> 
     <td class="day new disabled">3</td> 
    </tr> 
    <tr> 
     <td class="day new disabled">4</td> 
     <td class="day new disabled">5</td> 
     <td class="day new disabled">6</td> 
     <td class="day new disabled">7</td> 
     <td class="day new disabled">8</td> 
     <td class="day new disabled">9</td> 
     <td class="day new disabled">10</td> 
    </tr> 
</tbody> 
+1

Anstatt alle 'td' Elemente durchlaufen, können Sie einfach erstellen Sie einen generischen xpath oder verwenden Sie' by.cssContainingText() ', um dies zu erreichen. –

+0

Danke, @SudharsanSelvaraj! Arbeitete mit 'cssContainingText'. 'element (by.cssContainingText ('. Tag', yesterDay)). Click();' –

+0

Froh, dass es funktioniert hat :) –

Antwort

0

Meine Lieblingsweise ist das Datum manuell bei der Herstellung von Winkelmesser, wie zu geben Sie das Datum in der Eingabe einzugeben div statt eine Menge Dinge zu klicken und machen Dinge kompliziert.

Nehmen Sie Ihre Eingabe div ist für den direkten Eintrag deaktiviert (das heißt, sie ein behindertes Attribut) Sie mithilfe Ebene Javascript, um die disabled-Attribut entfernen, wie unten:

browser.executeScript('document.getElementsByName("dob0")[0].removeAttribute("disabled")'); 
var date1 = 11 + '/' + 23 + '/' + 1994; 
dob.sendKeys(date1); 
browser.executeScript('document.getElementsByName("dob0")[0].setAttribute("disabled","disabled");'); 

Und wenn Sie eingeben möchten das heutige Datum, ich schlage vor, Sie verwenden die date object provided by javascript

+0

Die manuelle Eingabe des Datums wurde deaktiviert. Aber wie @Sudharsan erwähnt hat, wird mit cssContainingTex() funktionieren. –

Verwandte Themen