Элемент Not Interactable Исключение при использовании функции Python selenium Select () - PullRequest
0 голосов
/ 28 марта 2020

У меня есть следующий HTML код:

<select name="course" id="course" class="standardSelect form-control-sm form-control" data-live-search="true" data-size="10" onchange="displayStudent(this.value);" style="display: none;">
    <option value="">Select course</option>
    <option value="2">Course A</option>
    <option value="71">Course B</option>
    <option value="5">Course C</option>
    ...
</select>
<div class="chosen-container chosen-container-single chosen-container-single-nosearch" title="" id="course_chosen" style="width: 100%;">
    <a class="chosen-single">
        <span>Select course</span>
    </a>
    <div class="chosen-drop">
        <div class="chosen-search">
            <input class="chosen-search-input" type="text" autocomplete="off" readonly="">
        </div>
        <ul class="chosen-results">
            <li class="active-result result-selected" data-option-array-index="0">Select course</li>
            <li class="active-result" data-option-array-index="1">Course A</li>                                    
            <li class="active-result" data-option-array-index="2">Course B</li>
            <li class="active-result" data-option-array-index="3">Course C</li>
            ...
        </ul>
    </div>
</div>

Я собираюсь очистить содержимое, отображаемое при выборе каждого курса. Поэтому я должен нажать на каждый параметр и получить исходный код страницы. Однако я не могу этого сделать. Когда я пытаюсь выбрать любой вариант, используя select_by_value() или функции select_by_visible_text(), я получаю ElementNotInteractableException. Я также попробовал функцию select_by_index().

Ниже приведен код, который я использовал для выбора опции со значением = 2:

select_box = Select(browser.find_element_by_xpath("//select[@id='course']"))
select_box.select_by_value('2')

, и ошибка, которую он мне дает:

ElementNotInteractableException: Message: element not interactable: Element is not currently visible and may not be manipulated
  (Session info: chrome=80.0.3987.149)

Пожалуйста, помогите мне разрешить это исключение или любой другой метод, который будет работать при выборе опции из выпадающего списка.

1 Ответ

1 голос
/ 28 марта 2020

выбор не отображается style="display: none;", поэтому вы не можете щелкнуть по нему, я думаю, с реальной стороны вам нужно будет нажать на элемент li. попробуйте нажать: //div[@id="course_chosen"]//ul/li[text()="Course A"] (возможно, после нажатия на <span>Select course</span>)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...