#javascript #ruby #capybara
#javascript #ruby #капибара
Вопрос:
Я практикую / тестирую capybara и столкнулся с проблемой выбора элементов из выпадающего меню.
Способ работы веб-сайта заключается в том, что вы можете перейти к следующему выпадающему списку, только если вы заполнили предыдущий, и я могу заполнить последний выпадающий список, но когда я открываю страницу, предыдущие два поля остаются пустыми.
интернет = Capybara.current_session
url = «https://repairpal.com/estimator«
интернет.url для посещения
internet.select(«Acura», : from=>’js-emu-make-id’, видимый: false)
internet.select(«1993», :from=>’js-emu-year-id’, видимый: false)
internet.select(‘Integra’, :from=>’js-emu-base-vehicle-id’, видимый: false)
internet.fill_in(‘адрес’, :с => ‘10018’)
internet.save_and_open_page
ожидаемый / желаемый результат
реальный результат Ожидаемый результат заключается в том, что когда я открываю страницу, все заполняется; однако, когда я открываю страницу, я вижу два пустых выпадающих списка, но третий заполнен «Integra», так что работает только эта часть. Большое спасибо за помощь.
Ответ №1:
save_and_open_page
сохранить текущее состояние html-элементов с их атрибутами. Это не включает состояние свойств html-элементов, поэтому оно может не отражать фактическое текущее состояние страницы (например. изменение свойства value элемента не изменяет атрибут value, и атрибут — это то, что сохраняется). Если вы действительно хотите увидеть текущее состояние, которое вы должны использовать save_and_open_screenshot
.
Кроме того, есть ли причина, по которой вы передаете visible: false
все эти select
вызовы? Если вам действительно нужно использовать visible: false
для поиска элементов, то выбор должен завершиться ошибкой, поскольку вы будете делать то, что пользователь не смог бы.