타임아웃
각 WebdriverIO 명령은 비동기 작업입니다. Selenium 서버(또는 Sauce Labs와 같은 클라우드 서비스)에 요청이 전송되고, 응답에는 작업이 완료되거나 실패한 결과가 포함됩니다.
따라서 시간은 전체 테스트 프로세스에서 중요한 요소입니다. 특정 작업이 다른 작업의 상태에 의존할 때, 올바른 순서대로 실행되도록 확인해야 합니다. 이러한 문제를 다룰 때 타임아웃이 중요한 역할을 합니다.
WebDriver 타임아웃
세션 스크립트 타임아웃
세션에는 비동기 스크립트가 실행될 때까지 기다리는 시간을 지정하는 세션 스크립트 타임아웃이 있습니다. 따로 명시하지 않으면 30초입니다. 이 타임아웃을 다음과 같이 설정할 수 있습니다:
await browser.setTimeout({ 'script': 60000 })
await browser.executeAsync((done) => {
console.log('this should not fail')
setTimeout(done, 59000)
})
세션 페이지 로드 타임아웃
세션에는 페이지 로딩이 완료될 때까지 기다리는 시간을 지정하는 세션 페이지 로드 타임아웃이 있습니다. 따로 명시하지 않으면 300,000밀리초입니다.
이 타임아웃을 다음 과 같이 설정할 수 있습니다:
await browser.setTimeout({ 'pageLoad': 10000 })
pageLoad키워드는 공식 WebDriver 명세의 일부이지만, 브라우저에 따라 지원되지 않을 수 있습니다(이전 이름은page load).