Выбор радиокнопки, доступной после выполнения JavaScript - PullRequest
0 голосов
/ 04 марта 2019

Мой тестовый пример - записаться на прием.Проблема в том, что необходимая радиокнопка, которую я должен выбрать (обязательно для формы), доступна через функцию javascript getTimeSlots()

Вот консоль веб-разработчика с функцией и выводом enter image description here

И вот консоль веб-разработчика, показывающая мне кнопки на странице встреч enter image description here

В моем понимании я иду на страницу встреч, выполняю javascript и выбираюРадиокнопка и отправить форму.Но это не работает.

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

Как я могу использовать роботизированную рамку для выбора этой кнопки?

1 Ответ

0 голосов
/ 04 марта 2019

Ну, есть несколько причин, почему эта ошибка появляется.В целом это означает, что состояние DOM изменилось между взаимодействиями.Поскольку ключевые слова SeleniumLibrary 3.3 , начинающиеся с Wait Until, не завершаются ошибкой из-за этой ошибки.Вы можете попытаться подождать, пока элемент не появится, и только после этого нажать на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...