IJavaScriptExecutor выполнение нескольких скриптов - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь выполнить действие с элементом выбора даты. Я правильно локализовал элементы, однако при пробном нажатии на 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...