Как выбрать значения в раскрывающемся списке с помощью селена selenium.select ("", "")? - PullRequest
2 голосов
/ 29 марта 2012

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

Первоначально я написал сценарий с IDE Селена, он дал мне код:

selenium.select("id=skuOptionSIZE1c4b403", "label=8");

, но когда я начинаю писать в коде (Java), Eclipse выдает ошибку, пока я все еще вижу раскрывающийся список id, представленный на странице:

Exception in thread "main" com.thoughtworks.selenium.SeleniumException: ERROR: Element id=skuOptionSIZE1cd7bfd not found

Может ли кто-нибудь помочь мне, как получить значения из раскрывающегося списка?

Ответы [ 3 ]

5 голосов
/ 29 марта 2012

Если вы используете Selenium 2 или Webdriver, я бы сделал это так:

Select select = new Select(driver.findElemetn(/*Way to your drop down*/));
select.selectByValue("your value") 
//or
select.selectByVisibleText("your Test");

//alternativly you can do something like this
List<WebElement> options = select.getOptions();
//find your desired option
select.selectByVisibleText(option.getText());

Надеюсь, это поможет.

0 голосов
/ 29 марта 2012

Если вы загрузите dll поддержки Webdriver, вы можете использовать следующее

SelectElement select = new SelectElement(element);
select.SelectByIndex(8); //Where the number 8 is the base 0 index of the options

Так что, если у вас есть 10 опций (0-9) SelectByIndex(8) вернет девятую опцию.

0 голосов
/ 29 марта 2012

Если вы используете IE8 или выше, нажмите F12 и используйте там Инструменты разработчика. Особенно полезным должен быть значок курсора, т. Е. Select Element By Click, который позволит вам выбрать любой элемент и увидеть все присвоенные ему атрибуты.

Если вы используете Firefox 11, в меню веб-разработчика есть аналогичный инструмент. Или используйте аддон Firebug, который сильнее, но сложнее.

Но! Основная проблема, с которой вы столкнетесь, - время от времени идентификатор будет меняться. Кажется, генерируется автоматически. Это означает, что вам придется использовать другой способ выбора элемента. Вы можете использовать, например, selenium.select("id=skuOptionSIZE*", "label=8"); или найти его с помощью XPath или css selector .

...