Выбор элемента в Combobox
#1
Отправлено 25 марта 2013 - 07:44
Есть список счетов, который на странице отображается в виде Combobox. Задача - выбрать первый из счетов в комбобоксе и сделать по нему клик.
Гугл как-то не помог разобраться. В документации и примерах описывается как создать комбобокс, а не как кликать по элементу. Я работаю WebDriver + Java
Ткните, плс, где можно почитать именно на эту тему или пример кода... На тестируемой странице много комбобоксов и необходимо научится с ними работать
#2
Отправлено 25 марта 2013 - 11:58
Вопрос совсем новичковский, но вот никак не получается самостоятельно в нем разобраться
Есть список счетов, который на странице отображается в виде Combobox. Задача - выбрать первый из счетов в комбобоксе и сделать по нему клик.
Гугл как-то не помог разобраться. В документации и примерах описывается как создать комбобокс, а не как кликать по элементу. Я работаю WebDriver + Java
Ткните, плс, где можно почитать именно на эту тему или пример кода... На тестируемой странице много комбобоксов и необходимо научится с ними работать
Есть например такой комбобокс:
<select id="superior" size="1" name="superior">
<option value=""></option>
<option value="c.i.e.m.md.Division_1">DIVISION007</option>
<option selected="selected" value="c.i.e.m.md.Division_$$_javassist_162_119">MyDivision</option>
<option value="c.i.e.m.md.Division_121">MyDivision4</option>
<option value="c.i.e.m.md.Division_122">MyDivision5</option>
</select>
Тогда для получить доступ к элементу MyDivision4 можно так:
//select[@id='superior']/option[text()='MyDivision4']
new Select(driver.findElement(By.id("superior"))).selectByVisibleText("MyDivision4");
#3
Отправлено 26 марта 2013 - 08:31
#4
Отправлено 26 марта 2013 - 11:17
driver.findElement(By.id("someid")).sendKeys(Keys.ARROW_DOWN);
#5
Отправлено 26 марта 2013 - 11:18
но как выяснилось, мой выпадающий список вовсе не Combobox (и разработчики мне это подтвердили)... Как минимум select'ов там нет... Я так понимаю, что это просто список, оформленный в виде выпадающего листа и как с ним работать я еще больше не представляю. Делать клик по xpath - как я это делаю сейчас - мне совсем не хочется. А хочется написать универсальный метод, в который передавать какие-то значения (индекс или валюту) и в ответ получать клик по нужному элементу.
#6
Отправлено 26 марта 2013 - 13:10
<select id="transFrom" style="width: 350px; display: none;" name="transFrom"> <option acc="1111111111111111" value="ABC10000">Account 1 10000</option> <option acc="123456976" value="ABC347">With Statement 600</option> <option acc="90000080000" value="EUR908">For corporate 89000</option> </select>
В идеале я бы хотела получить список всех элементов с индексами (1,2,3) и кликнуть потом по элементу с индексом 1 или 2, например...
#7
Отправлено 26 марта 2013 - 15:23
а что такое индекс в вашем примере?В коде дроплист выглядит следующим образом:
<select id="transFrom" style="width: 350px; display: none;" name="transFrom"> <option acc="1111111111111111" value="ABC10000">Account 1 10000</option> <option acc="123456976" value="ABC347">With Statement 600</option> <option acc="90000080000" value="EUR908">For corporate 89000</option> </select>
В идеале я бы хотела получить список всех элементов с индексами (1,2,3) и кликнуть потом по элементу с индексом 1 или 2, например...
#8
Отправлено 27 марта 2013 - 10:37
а что такое индекс в вашем примере?
В коде дроплист выглядит следующим образом:<select id="transFrom" style="width: 350px; display: none;" name="transFrom"> <option acc="1111111111111111" value="ABC10000">Account 1 10000</option> <option acc="123456976" value="ABC347">With Statement 600</option> <option acc="90000080000" value="EUR908">For corporate 89000</option> </select>
В идеале я бы хотела получить список всех элементов с индексами (1,2,3) и кликнуть потом по элементу с индексом 1 или 2, например...
Действительно, было бы неплохо знать что у Вас выступает в роли индекса.
И элемент должен быть display: none ?
#9
Отправлено 27 марта 2013 - 15:18
Начнем сначала. Я не буду писать код выбора, а лишь натолкну на мысль, перечислив основные функции.В коде дроплист выглядит следующим образом:
<select id="transFrom" style="width: 350px; display: none;" name="transFrom"> <option acc="1111111111111111" value="ABC10000">Account 1 10000</option> <option acc="123456976" value="ABC347">With Statement 600</option> <option acc="90000080000" value="EUR908">For corporate 89000</option> </select>
В идеале я бы хотела получить список всех элементов с индексами (1,2,3) и кликнуть потом по элементу с индексом 1 или 2, например...
1. Есть такой замечательный класс Select:
WebElement selectElement = webDriver.findElements(...); Select select = new Select(selectElement)
2. В этом замечательном классе есть куча интересных методов для работы с комбобоксами, или как вы их называете - дроплистами. Например:
select.selectByValue(value); // value - значение атрибута value в option select.selectByIndex(index); // index - номер элемента option select.selectByVisibleText(optionText); // optionText - текст элемента, в optionи много других методов, которые могут вам пригодиться...
Надеюсь этого вам хватит, чтобы справиться с поставленной задачей.
Про Тестинг
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных