2016-11-11 89 views
1

我们有一个建立在bootstrap-datepicker上的日历。我试图选择一个特定的日子,例如sysdate或sydate-2或sysdate-3。我遇到的一种方法是使用findElements并通过List循环,直到元素之一匹配当前日期与equalsIgnoreCase从日历中挑选一天 - datepicker - 从量角器基于今天的日期

但我想在JS中实现这一点,以便在我的量角器测试用例中使用。

下面是表的结构:

<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

而不是循环所有'td'元素,你可以简单地创建一个通用的xpath或使用'by.cssContainingText()'来实现这一点。 –

+0

谢谢,@SudharsanSelvaraj!使用'cssContainingText'。 '元素(by.cssContainingText('。day',yesterdayDay))。click();' –

+0

很高兴工作:) –

回答

0

我喜欢的方式是在做量角器,进入输入的日期格,而不是点击了很多东西,使手动输入日期,事情很复杂。

假设您输入的div是直接进入禁用(即,它有一个残疾的属性),你可以通过使用普通的JavaScript,像下面移除已停用的属性:

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");'); 

如果你想进入今天的日期,我建议你使用date object provided by javascript

+0

手动输入日期已被禁用。但正如@Sudharsan提到的,将与cssContainingTex()一起工作。 –