Роботная работа: как получить ответ на запрос - PullRequest
0 голосов
/ 22 октября 2018

Я бы хотел проверить активацию пользователя.Чтобы подтвердить создание пользователя, я нажимаю кнопку «Действительный», и интерфейс запрашивает серверную часть для отправки запроса POST.
Моя цель - получить ответ на этот запрос.

Я пробовал эти ключевые слова:

*** Setting ***
Library    SeleniumLibrary
Library    HttpLibrary.HTTP    

*** Keyword ***
!Confirm entry
    [Arguments]    ${id_button}
    Wait Until Element Is Visible    ${id_button}
    Click Element    ${id_button}
    Response Status Code Should Equal    200

Или

*** Setting ***
Library    SeleniumLibrary

*** Keyword ***
!Confirm entry
    [Arguments]    ${id_button}
    Wait Until Element Is Visible    ${id_button}
    ${status}    Run Keyword And Return    Click Element    ${id_button}

Эти два решения не дают мне удовлетворения.
Не могли бы вы, пожалуйста, иметь представление оключевые слова для использования в Robotframework для решения моей проблемы?

С наилучшими пожеланиями

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Как уже подчеркивалось в приведенных ответах, смешивание HttpLibrary и SeleniumLibrary не даст вам доступа к коду состояния обмена http между пользовательским интерфейсом и веб-сервером.

Если вы хотите, чтобы все вызовы из браузера получали http 200, вам необходимо перенаправить трафик через прокси.В этом Stackoverflow Answer приведен рабочий пример использования прокси-сервера BrowserMob.

0 голосов
/ 23 октября 2018

Чтобы повторить то, что уже сказали другие, запросы браузера не могут быть перехвачены селеном.
В целях различных альтернатив, другой вариант сделать это - использовать Service Workers - который получит сетевой трафик ивызовите js в вашем контроле, который может хранить (или даже изменять) переданные данные.

Настройка для этого может быть довольно сложной (внедрение работника и js, затем связь с ним с помощью роботизированной системы), вот очень через SO ответ , чтобы начать работу с ним.

0 голосов
/ 22 октября 2018

Click Element не вернет код состояния, как вы ожидали.Вы не можете получить код состояния, используя селен.

Response Status Code Should Equal - это библиотека HTTP, и она будет работать только в том случае, если за ней следует HTTP-запрос, такой как GET, POST ключевые слова в библиотеке HTTP.

Example      
    HTTP Context    httpstat.us
    GET  /302
    Response Status Code Should Equal   302

Не будет работать с ключевыми словами селена.

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