Я пытаюсь выполнить действие с элементом выбора даты. Я правильно локализовал элементы, однако при пробном нажатии на WebElement я получаю сообщение об ошибке:
ElementNotInteractableException
Вот почему я решил использовать решение JavaScriptExecutor:
public void ChooseDateFromDatePicker(int startDate, int endDate)
{
var startDateElement = DateTablesElements[0];
var startDateCallendarElement = startDateElement.FindElement(By.XPath($"//tbody/tr/td[(text() = {startDate})]"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", startDateCallendarElement);
var endDateElement = DateTablesElements[1];
var endDateCallendarElement = endDateElement.FindElement(By.XPath($"//tbody/tr/td[(text() = {endDate})]"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", endDateCallendarElement);
}
Все нормально с первой частью, когда выбирается дата, но со вторым блоком кода (начиная с endDateElement). Я сталкиваюсь с поведением, когда первый (предыдущий) щелчок полностью исчезает, ничего не выбирается.
В чем здесь может быть проблема? Это ДОМ. Первый «td» - это пример выбора конкретной даты:
<table class="CalendarMonth_table CalendarMonth_table_1" role="presentation">
<tbody>
<tr>
<td></td>
<td></td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__selected_start CalendarDay__selected_start_3 CalendarDay__selected CalendarDay__selected_4" role="button" aria-disabled="false" aria-label="Selected as start date. Wednesday, 1 May 2019" tabindex="0" style="width: 32px; height: 31px;">1</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Thursday, 2 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">2</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Friday, 3 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">3</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Saturday, 4 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">4</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__lastDayOfWeek CalendarDay__lastDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Sunday, 5 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">5</td>
</tr>
<tr>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__firstDayOfWeek CalendarDay__firstDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Monday, 6 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">6</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Tuesday, 7 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">7</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Wednesday, 8 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">8</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Thursday, 9 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">9</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Friday, 10 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">10</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Saturday, 11 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">11</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__lastDayOfWeek CalendarDay__lastDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Sunday, 12 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">12</td>
</tr>
<tr>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__firstDayOfWeek CalendarDay__firstDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Monday, 13 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">13</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Tuesday, 14 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">14</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__today CalendarDay__today_3" role="button" aria-disabled="false" aria-label="Choose Wednesday, 15 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">15</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Thursday, 16 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">16</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Friday, 17 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">17</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Saturday, 18 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">18</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__lastDayOfWeek CalendarDay__lastDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Sunday, 19 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">19</td>
</tr>
<tr>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__firstDayOfWeek CalendarDay__firstDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Monday, 20 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">20</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Tuesday, 21 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">21</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Wednesday, 22 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">22</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Thursday, 23 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">23</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Friday, 24 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">24</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Saturday, 25 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">25</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__lastDayOfWeek CalendarDay__lastDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Sunday, 26 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">26</td>
</tr>
<tr>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2 CalendarDay__firstDayOfWeek CalendarDay__firstDayOfWeek_3" role="button" aria-disabled="false" aria-label="Choose Monday, 27 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">27</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Tuesday, 28 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">28</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Wednesday, 29 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">29</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Thursday, 30 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">30</td>
<td class="CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2" role="button" aria-disabled="false" aria-label="Choose Friday, 31 May 2019 as your check-out date. It’s available." tabindex="-1" style="width: 32px; height: 31px;">31</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>