#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])