С тех пор, как я разместил этот вопрос, я потратил много времени на поиск python-эквивалента объекта java Select () и ничего не нашел.
Я придумал обходной путь, основанный на этом: https://gist.github.com/1205069
Возможно, следующий код поможет кому-то сэкономить время.
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
def select_by_text(web_element, select_text):
"""given a web element representing a select object, click the option
matching select_text
"""
option_is_found = False
options = web_element.find_elements_by_tag_name('option')
for option in options:
if option.text.strip() == select_text:
option.click()
option_is_found = True
break
if option_is_found == False:
raise NoSuchElementException('could not find the requested element')
# ...omitted setting up the driver and getting the page
web_element = webdriver.find_element_by_name('country_select')
select_by_text(web_element, 'Canada')
Этот код должен щелкнуть элемент select с учетом его текста или вызвать исключение NoSuchElementException, если данный элемент не является элементом формы select или текст не существует.