대기(Waits)
GitLab v19.1모든 Capybara Node Finder는 대기 메커니즘을 활용합니다. 드라이버가 JavaScript를 실행할 수 있는 경우, find는 일정 시간 동안 대기하면서 엘리먼트를 찾을 때까지 또는 시간이 만료될 때까지 계속해서 엘리먼트 탐색을 재시도합니다.
모든 Capybara Node Finder는 대기 메커니즘을 활용합니다.
Capybara API에 따르면 -
드라이버가 JavaScript를 실행할 수 있는 경우, find는 일정 시간 동안 대기하면서 엘리먼트를 찾을 때까지 또는 시간이 만료될 때까지 계속해서 엘리먼트 탐색을 재시도합니다. find가 대기하는 시간의 길이는 Capybara.default_max_wait_time을 통해 제어되며 기본값은 2초입니다. find는 all과 동일한 옵션을 사용합니다.
이상적으로는 GitLab QA Framework가 하드 슬립을 피하기 위해 자체적인 명시적 대기를 구현해야 하지만, 현재는 그렇지 않습니다.
하드 슬립(Hard Sleeps)#
def wait(max: 60, time: 0.1, reload: true)
...
end
-
max: 주어진 블록이 충족될 때까지 대기할 최대 시간(초)을 지정합니다. -
time: 초 단위의 슬립 인터벌/폴링 시간입니다. 이 시간이max에 도달하면 대기는false를 반환합니다. -
reload: 대기가 충족되지 않으면,:reload가true로 설정된 경우 테스트는 슬립 후 페이지를 다시 로드합니다.