Я не могу получить значение параметра без использования xpath в Кабибаре

#ruby #selenium-webdriver #automated-tests #capybara

#рубин #селен-веб-драйвер #автоматизированные тесты #капибара

Вопрос:

Я попытаюсь объяснить еще раз. Мне нужно получить значение Arizone, но я получаю его только через xpath. Элемент был сопоставлен с: element :select_cad_state, "#uniform-id_state" . Я не хочу использовать xpath для получения значения Арканзас, я хочу использовать что-то вроде: select_state.send_keys(DATA[:cad_user][:_state]) ???..и т. Д. и т. Д..

Я хочу получить значение аризоны из файла users.yml и передать его в качестве аргумента спереди.

 ############ code page #####################  lt;div class="selector" id="uniform-id_state" style="width: 269px;"gt;lt;span style="width: 259px; user-select: none;"gt;Floridalt;/spangt;lt;select name="id_state" id="id_state" class="form-control" style=""gt;  lt;option value=""gt;-lt;/optiongt;  lt;option value="1"gt;Alabamalt;/optiongt;  lt;option value="2"gt;Alaskalt;/optiongt;   lt;option value="3"gt;Arizonalt;/optiongt;   lt;option value="4"gt;Arkansaslt;/optiongt;lt;/divgt;   ################### my PageObjects #########################  class ScreenCadastro lt; SitePrism::Page    set_url 'http://automationpractice.com/index.php?controller=authenticationamp;back=my-account'  element :input_cad_company, "#company"  element :input_cad_address, "#address1"  element :input_cad_city, "#city"  element :select_state, "#uniform-id_state" (my problem is here)    ################ yaml file ##############  :cad_user:  :_password: 457226  :_company: SQATest  :_address: International Drive 678  :_city: Bradenton  :_state: Arizona     ################## my env file ###################  DADOS = YAML.load(File.open(File.join(File.dirname(__FILE__)   "/massa/users.yml")))    input_cad_company.send_keys(DADOS[:cad_user][:_company])  input_cad_address.send_keys(DADOS[:cad_user][:_address])  input_cad_city.send_keys(DADOS[:cad_user][:_city]) find(:xpath,'/html/body/div/div[2]/div/div[3]/div/div/form/div[2]/p[7]/div/select/option[3]').click   

Комментарии:

1. на первый взгляд у select тега есть id_state идентификатор, пока ScreenCadastro вы пытаетесь найти его в своем классе #uniform-id_state . Не могли бы вы, пожалуйста, изменить его на #id_state и запустить тест.

Ответ №1:

Вы спрашиваете о значении параметра, но из всего вашего кода похоже, что вы действительно хотите выбрать на основе содержимого строки элемента параметра (а не значения). Как я написал в своем ответе на ваш предыдущий вопрос, это должно быть просто

 select_state.select(DADOS[:cad_user][:_state])  

Если это не работает для вас, пожалуйста, укажите сообщение об ошибке, которое оно вам выдает.

Комментарии:

1. Потрясающе.. Спасибо, что я использовал!! элемент :select_state, ‘#uniform-id_state’ select_state.выберите(DADOS[:cad_user][:_state])