Перейти к содержимому

Фотография

select в Selenium 2


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 jonnykh

jonnykh

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Иван Неверов
  • Город:Харьков

Отправлено 22 сентября 2011 - 00:43

Как выбрать элемент select box'a в Selenium 2?
Пробовал следующий код, но он не работaет
select_box = @selenium.find_element(:id, 'some_id')
opts = select_box.find_elements(:tag_name, 'option')
opt = opts.find{|o| o.value=='some_value'}
opt.click
Нужная опция находиться, но click не выбирает ее из списка

Для поиска по label нашел выход
select_box = @selenium.find_element(:id, 'some_id')
select_box.send_keys('SomeLabel')
При этом появляется стандартное окошко с опциями, но не исчезает после выбора

Платформа Android 2.2
WebDriver v2.6.0
Gem: selenium-webdriver-2.6.0
Язык: Ruby

Помогите кто-нибудь :help:

Спасибо
  • 0

#2 jonnykh

jonnykh

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Иван Неверов
  • Город:Харьков

Отправлено 22 сентября 2011 - 03:34

Сори, допустил ошибку в примере
В find
o.attribute('value') == 'some_value'
PS. Можно конечно найти опцию по любому из аттрибутов взять у нее отображаемый текст и его использовать в send_keys для select
Как вариант можно, но может быть есть какие-либо готовые решения?
  • 0

#3 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 22 сентября 2011 - 06:47

Как выбрать элемент select box'a в Selenium 2?
Пробовал следующий код, но он не работaет
select_box = @selenium.find_element(:id, 'some_id')
opts = select_box.find_elements(:tag_name, 'option')
opt = opts.find{|o| o.value=='some_value'}
opt.click
Нужная опция находиться, но click не выбирает ее из списка

Для поиска по label нашел выход
select_box = @selenium.find_element(:id, 'some_id')
select_box.send_keys('SomeLabel')
При этом появляется стандартное окошко с опциями, но не исчезает после выбора

Платформа Android 2.2
WebDriver v2.6.0
Gem: selenium-webdriver-2.6.0
Язык: Ruby

Помогите кто-нибудь :help:

Спасибо


Вроде как для select-ов есть специальный класс Select:

new Select(@selenium.find_element(:id, 'some_id')).selectByVisisbleText('optionText')

Синтаксис из Java. У Вас, судя по всему, синтаксис будет немного другой. но суть та же.
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 22 сентября 2011 - 08:24

На руби аналогичный саппорт-класс для селектов пока не реализован.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 androndual

androndual

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Андрей

Отправлено 22 сентября 2011 - 17:08

Не очень красиво, но так тоже получилось на питоне:

element = browser.find_element_by_id("SelectBox_ID")
el_list = element.find_elements_by_tag_name('option')
for option in el_list:
if option.text == "Value_1":
option.click()
time.sleep(0.3)
if option.text == "Value_2":
option.click()
time.sleep(0.3)
if option.text == "Value_3":
option.click()
  • 0
Best Regards,
Andrii

#6 O'Leen

O'Leen

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • Город:Киев

Отправлено 11 февраля 2013 - 10:15

Вроде как для select-ов есть специальный класс Select:

new Select(@selenium.find_element(:id, 'some_id')).selectByVisisbleText('optionText')

Синтаксис из Java. У Вас, судя по всему, синтаксис будет немного другой. но суть та же.


почему-то это не работает при выборе...
А может кто-то подскажет как выбрать не какой-то конкретный текст, а, скажем, первое значение из комбобокса?
  • 0

#7 agits777

agits777

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Alexander Gits

Отправлено 12 февраля 2013 - 21:36



Вроде как для select-ов есть специальный класс Select:

new Select(@selenium.find_element(:id, 'some_id')).selectByVisisbleText('optionText')

Синтаксис из Java. У Вас, судя по всему, синтаксис будет немного другой. но суть та же.


почему-то это не работает при выборе...
А может кто-то подскажет как выбрать не какой-то конкретный текст, а, скажем, первое значение из комбобокса?


Try this one:

Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, list_id)).select_by(:text, option_name)

works fine for me
  • 0

#8 O'Leen

O'Leen

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • Город:Киев

Отправлено 12 февраля 2013 - 21:53

Try this one:

Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, list_id)).select_by(:text, option_name)

works fine for me

Если точно известно, какой именно текст надо выбрать, то работает.
А как выбрать значение, если заранее не известно, какое оно будет?.. Нужен выбор с каким-то индексом..
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных