Как правильно использовать оператор импорта для объекта Select в webdriver 2.4 под python? - PullRequest
0 голосов
/ 29 сентября 2011

Я пишу тесты с Selen Webdriver 2.4 на Python 2.7.

Документация (http://seleniumhq.org/docs/03_webdriver.html) демонстрирует возможность манипулировать элементами выбора формы следующим образом:

Select select = new Select(driver.findElement(By.xpath("//select")));
select.deselectAll();
select.selectByVisibleText("Edam");

Мне нужноманипулировать элементами формы выбора, как это, но в python. Однако я не могу понять, что импортировать, чтобы успешно создать экземпляр объекта Select.

Каким должен быть мой оператор импорта?

Спасибо.

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Однако я не могу понять, что импортировать, чтобы успешно создать экземпляр объекта Select.

Доступен как: from selenium.webdriver.support.ui import Select

Смотри также: http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_support/selenium.webdriver.support.select.html#module-selenium.webdriver.support.select

0 голосов
/ 30 сентября 2011

С тех пор, как я разместил этот вопрос, я потратил много времени на поиск 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 или текст не существует.

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