select в Selenium 2
#1
Отправлено 22 сентября 2011 - 00:43
Пробовал следующий код, но он не работ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
Помогите кто-нибудь
Спасибо
#2
Отправлено 22 сентября 2011 - 03:34
В find
o.attribute('value') == 'some_value'
PS. Можно конечно найти опцию по любому из аттрибутов взять у нее отображаемый текст и его использовать в send_keys для select
Как вариант можно, но может быть есть какие-либо готовые решения?
#3
Отправлено 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
Помогите кто-нибудь
Спасибо
Вроде как для select-ов есть специальный класс Select:
new Select(@selenium.find_element(:id, 'some_id')).selectByVisisbleText('optionText')
Синтаксис из Java. У Вас, судя по всему, синтаксис будет немного другой. но суть та же.
#4
Отправлено 22 сентября 2011 - 08:24
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#5
Отправлено 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()
Andrii
#6
Отправлено 11 февраля 2013 - 10:15
Вроде как для select-ов есть специальный класс Select:
new Select(@selenium.find_element(:id, 'some_id')).selectByVisisbleText('optionText')
Синтаксис из Java. У Вас, судя по всему, синтаксис будет немного другой. но суть та же.
почему-то это не работает при выборе...
А может кто-то подскажет как выбрать не какой-то конкретный текст, а, скажем, первое значение из комбобокса?
#7
Отправлено 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
#8
Отправлено 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 анонимных