#javascript #automation #robotframework
#javascript #автоматизация #robotframework
Вопрос:
Мой тестовый пример — записаться на прием. Проблема в том, что требуемая radiobutton, которую я должен выбрать (обязательная для формы), доступна через функцию javascript getTimeSlots()
Вот консоль webdeveloper с функцией и выводом
И здесь консоль webdeveloper показывает мне кнопки radiobutton на странице назначения
Насколько я понимаю, я захожу на страницу назначения, запускаю javascript, выбираю кнопку radiobutton и отправляю форму. Но это не работает.
Book appointment
[Tags] appointment
Input Text id:foo here is bar
Input Text id:bar here is more bar
Click Element id:requested_date
# Get date out of the datepicker
${current_date_noon} = Get Current Date result_format=%Y-%m-%d 00:00:00
${date_in_7d} = Add Time To Date ${current_date_noon} 7 days
${unixtime} = get time epoch ${date_in_7d}
${data_format} = Set Variable ${unixtime}000
Click Element xpath=//td[@data-date="${data_format}"]
# FIXME Here I try to select the radiobutton
Execute Javascript window.getTimeSlots()
#Select Radio button requested_time 19:00 - 19:30
Click Element name:requested_time
Capture Page Screenshot Screenshot-termin-buchen-{index}.png
Submit Form
Когда я запускаю код, я получаю следующий результат в консоли
------------------------------------------------------------------------------
Book appointment | FAIL |
StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=72.0.3626.109)
(Driver info: chromedriver=2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac),platform=Linux 4.9.49-moby x86_64)
------------------------------------------------------------------------------
Как я могу использовать robotframework для выбора этой radiobutton?
Ответ №1:
Ну, есть несколько причин, по которым появляется эта ошибка. В общем случае это означает, что состояние DOM изменилось между взаимодействиями. Поскольку ключевые слова SeleniumLibrary 3.3, начинающиеся с Wait Until
, не завершаются ошибкой из-за этой ошибки. Вы могли бы попробовать дождаться появления элемента и только после этого щелкнуть по нему.