Я автоматизирую сайт, на котором есть страница со списком параметров, выбранных переключателем. При выборе одного из радиомодулей отображается текстовое поле и список выбора.
Я создал файл (test_contracting.rb), в котором я выполняю тест (ruby test_contracting.rb) и некоторые другие классы для представления моей страницы.
В моем классе ContractPage у меня есть следующее объявление элемента:
checkbox(:option_sub_domain, :id => "option_sub_domain")
text_field(:domain, :id => "domain_text")
select_list(:tld, :id => "domain_tld")
Я создал в ContractPage метод, который устанавливает конфигурацию домена следующим образом:
def configure_domain(config={})
check_option_sub_domain
domain = config[:domain]
tld = config[:tld]
end
Когда я вызываю метод configure_domain из test_contracting.rb, он выбирает переключатель, но не заполняет поле значениями. Параметры попадают в метод правильно. Я проверил это, используя «Put». Даже если я изменю параметры на обычную строку типа «бла», это не сработает. Раздражает то, что если на test_contracting.rb я вызываю те же самые компоненты, это работает.
my_page_instance = ContractPage.new(browser)
my_page_instance.domain = "bla"
my_page_instance.tld = ".com"
То, что я нашел для работы, было в методе configure_domain, реализовать следующее:
domain_element.value = config[:domain]
tld_element.send_keys config[:locaweb_domain]
Тогда это сработало.
Документацию по модулю PageObjects, который я использую в качестве справочного материала, можно найти здесь: http://rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#select_list-instance_method
Ребята, есть ли у вас какие-либо объяснения, почему метод, автоматически сгенерированный объектом страницы для установки значения объекта, не работал в этой области / контексте?
Кстати, друг попробовал то же самое с Java, но и это не удалось.