Python Selenium: возможно ли изменить значение при нажатии опции в выпадающем меню?

Я использую Python Selen для проведения некоторых поисков. На одной веб-странице, которую я запрашиваю, диалог поиска позволяет мне указать в раскрывающемся меню, если я хочу выполнить поиск по всем разделам или конкретному разделу. Чтобы выбрать какой раздел, у сайта есть отдельный диалог во всплывающем окне, где я могу щелкнуть один раздел, и после этого опции "этот раздел" в раскрывающемся меню внутренне присваивается значение выбранного раздела. Вот как выглядит селектор при проверке:

    <select ...>
      <option id="searchthissection" value="<sectionname>">Search only in this section</option>
      <option id="searchallsections" value="">Search in all sections</option>
    </select>

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

    webdriver.find_element_by_xpath("//select[@id='searchoption']/option[text()'Search only in this section']").click()

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

Я могу легко перечислить / сгенерировать все значения, которые я хотел бы принять. Есть ли способ установить значение непосредственно при нажатии на эту опцию? Я думаю о чем-то вроде этого:

    webdriver.find_element_by_xpath("//select[@id='searchoption']/option[text()'Search only in this section']").set_value('<sectionname>').click()

Есть идеи? Большое спасибо!

1 ответ

Решение

Хорошо, я решил это. что я сделал, так это option=webdriver.find_element_by_xpath(...), webdriver.execute_script("arguments[0].value='<sectionname>';",option), а затем запустить поиск, отправив ключи в текстовое поле, отправив ключ ENTER (по некоторым причинам, option.click() не работает)

Другие вопросы по тегам