2017-10-11 100 views
0

DatePicker字段是不可編輯的,我無法使用sendkeys發送數據。唯一的辦法是點擊日期。我嘗試了很多選擇,但沒有任何工作。我無法點擊量角器中的datepicker元素,如果該字段不可編輯,如何點擊日期?

我想點擊明天的日期,即今天+ 1日期。請參閱以下代碼:

<input id="asOfDate" name="asOfDate" placeholder="Enter Date" readonly="true" ng-model="asOfDate" class="form-control date-picker asOfDate ng-pristine ng-valid ng-valid-pattern ng-touched" type="text" ng-pattern="/^([0]?\d{1}|[1][0-2])\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([1-9]{1}\d{3}))$/" style=""> 
#addeventModal > div > div > div.modal-body.modal-body-height > form > div.row > div > div > span 
<span ng-show="AddTimeLine.asOfDate.$error.pattern" class="text-danger ng-hide">Incorrect Format, should be MM/DD/YYYY</span> 

<div class="datepicker-days" style="display: block;"> 
<table class=" table-condensed"> 
<thead> 
<tr> 
<th class="cw">&nbsp;</th> 
<th class="prev" style="visibility: visible;"> 
«</th> 
<th colspan="5" class="datepicker-switch">October 2017</th> 
<th class="next" style="visibility: visible;">»</th> 
</tr> 

<tr> 
<th class="cw">&nbsp;</th> 
<th class="dow">Su</th> 
<th class="dow">Mo</th> 
<th class="dow">Tu</th> 
<th class="dow">We</th> 
<th class="dow">Th</th> 
<th class="dow">Fr</th> 
<th class="dow">Sa</th> 
</tr> 
</thead> 

<tbody> 
<tr> 
<td class="cw">39</td> 
<td class="old day">24</td> 
<td class="old day">25</td> 
<td class="old day">26</td> 
<td class="old day">27</td> 
<td class="old day">28</td> 
<td class="old day">29</td> 
<td class="old day">30</td> 
</tr> 
<tr> 
<td class="cw">40</td> 
<td class="day">1</td> 
<td class="day">2</td> 
<td class="day">3</td> 
<td class="day">4</td> 
<td class="day">5</td> 
<td class="day">6</td> 
<td class="day">7</td> 
</tr> 
<tr> 
<td class="cw">41</td> 
<td class="day">8</td> 
<td class="day">9</td> 
<td class="day">10</td> 
<td class="day">11</td> 
<td class="day">12</td> 
<td class="day">13</td> 
<td class="day">14</td> 
</tr> 
<tr> 
<td class="cw">42</td> 
<td class="day">15</td><td class="day">16</td> 
<td class="day">17</td><td class="day">18</td><td class="day">19</td> 
<td class="day">20</td><td class="day">21</td></tr> 
<tr><td class="cw">43</td><td class="day">22</td> 
<td class="day">23</td><td class="day">24</td> 
<td class="day">25</td><td class="day">26</td> 
<td class="day">27</td><td class="day">28</td> 
</tr><tr><td class="cw">44</td><td class="day">29</td> 
<td class="day">30</td><td class="day">31</td> 
<td class="new day">1</td> 
<td class="new day">2</td> 
<td class="new day">3</td> 
<td class="new day">4</td> 
</tr> 
</tbody> 
<tfoot> 
<tr> 
<th colspan="8" class="today" style="display: table-cell;">Today</th></tr><tr><th colspan="7" class="clear" style="display: none;">Clear</th></tr></tfoot></table></div> 

如何爲此編寫代碼?

+1

我無法打開圖片。請附上html代碼。 –

+0

不要在此處添加代碼圖片,而是在問題中添加代碼 – Jeffin

+0

已嘗試此代碼,嘗試過評估選項,但這些都不起作用 var today = new Date(); var dd = today.getDate()+ 1; var mm = today.getMonth()+ 1; var yyyy = today.getFullYear(); –

回答

0

Add days to JavaScript Date

增加一天以上問題

的幫助之後retrive一天

var day = todayTime.getDate(); 

既然你將有隻有一個月顯示,所有的日期將是獨一無二的。 所以,你的XPath將

//td[@class="day"][text()=day] 

你應該可以點擊下面的代碼

WebElement button = driver.findElement(By.xpath("//td[@class="day"][text()=day] 
")); 
JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("arguments[0].click();", button); 

我建議使用JavaScript的執行,因爲有可能是一個疊加窗口

+0

我認爲你的xpath是不正確的 – iamsankalp89

+0

請問你是否可以告訴我糾正我 –

+0

我dnnt知道我已經試過你的沒有工作 – iamsankalp89

1
browser.executeScript("arguments[0].click();",element(by.xpath("[//td[@class="day"][text()=day]")).getWebElement()); 

PS:這裏將當天傳遞爲日變量。

相關問題