根据今天的日期,从日历 - datepicker中挑选一天 - 从量角器

时间:2016-11-11 04:32:01

标签: selenium-webdriver webdriver protractor

我们有一个基于bootstrap-datepicker构建的日历。我试图选择一个特定的日子,比如sysdate或sydate-2或sysdate-3。我遇到的一种方法是使用findElements并循环浏览List,直到其中一个元素与equalsIgnoreCase的当前日期匹配。

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

以下是表格的结构:

<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 个答案:

答案 0 :(得分:0)

我最喜欢的方法是手动输入日期,就像让量角器在输入div中输入日期而不是点击很多东西并使事情变得复杂。

假设您的输入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