2014-03-26 2 views
15

친절하게 셀레늄 webdriver에 대한 지식을 공유하십시오. 실시간 예를 보여주세요.암시 적 대기와 Vs의 차이점은 무엇입니까? 셀레늄 webdriver에서 명시 적 대기?

+0

문서에 아무것도 추가하지 않습니다. http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits – olyv

+0

친절하게 http://stackoverflow.com/questions/11736027/webdriver- wait-for-element 또는 http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits – Sighil

+1

설명서에는 분명히 * 두 가지 종류의 대기가 수행되는 것이 설명되어 있지만 설명하지는 않습니다 둘 중 하나를 사용하거나, 암시 적 대기가 왜 필요한지 또는 암시 적 대기가 웹 드라이버의 수명 동안 고정 된 이유는 무엇입니까? 여기에 조금 더 많은 정보가 있습니다. (http://www.bizalgo.com/2012/01/14/timing-races-selenium-2-implicit-waits-explicit-waits/) – DNA

답변

21

확인 아래 링크 :

  • Implicit Wait -이 설문 조사는 DOM에 의해 약간의 시간을 기다리는 웹 드라이버를 지시합니다. 암시 적 대기를 선언하면 웹 드라이버 인스턴스의 전체 수명 동안 사용할 수 있습니다. 기본적으로 값은 0입니다. 기본값을 더 길게 설정하면 브라우저/드라이버 구현에 따라 주기적으로 DOM을 폴링합니다.

  • Explicit Wait + ExpectedConditions - 맞춤형입니다. 어떤 조건이 성립 될 때까지 얼마 동안 실행을 기다리고 싶을 때 사용됩니다.

+2

"DOM을 폴링"한다는 의미입니까? 나는 "설문 조사"의 행동에 혼란 스럽다. Thx – 8090PZ

+2

"DOM을 폴링하십시오"라는 말은 "주기적으로 다시로드를 검사하여 다시로드를 확인하는"것을 의미합니다. 투표 동작은 특정 드라이버/브라우저 구현에 따라 다르지만 일반적으로 암시 적 대기의 경우 0.5 초마다 (암시 적 대기를 ~ 1 초 이상으로 설정 한 경우) – djangofan

13

암시 기다릴 -

암시 대기는 기본적으로 지정된 웹 요소 WebDriver이 찾고 있다는 존재하지 않는 경우에 당신이보고 싶은 대기 시간 WebDriver 말하는 당신의 방법입니다. 따라서이 경우 UI (DOM)에서 사용할 수없는 지정된 요소의 경우 10 초를 기다려야한다고 WebDriver에 알리는 것입니다.

명시 기다릴 -

명시 대기는 특정 웹 요소에 국한되는 지능형 대기입니다. 명시 적 대기를 사용하면 기본적으로 WebDriver에 최대 값을 알리는 것이 포기하기 전에 X 단위 시간을 기다리는 것입니다.

+0

@JimEvans 전적으로 귀하의 요점에 동의합니다. –

+0

@sircapsalot을 확인하려면 http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp를 확인하십시오. –

7

위에서 언급 한 솔루션에 다른 관점을 추가합니다.

암시 적 대기 : 생성되면 WebDriver 개체가 종료 될 때까지 활성화됩니다. 그리고 모든 작업에 공통적입니다. 반면

,
명시 대기는 webElement 행동에 따라, 특정 작업에 선언 될 수있다. 폴링 시간 및 조건 충족을 사용자 지정하는 이점이 있습니다.
예를 들어, 10 초의 암시 적 대기를 선언했지만 요소가 20 초를 초과하고 5 초에 나타날 수 있으므로이 시나리오에서는 명시 적 대기가 선언됩니다.

10

차이 :

1)가 대기 암시 webDriver 객체의 전체 동안 설정된다. 웹 페이지로드시 각 요소 또는 요소가 많아지기 5 초 전에 특정 기간 동안 기다리고 싶다고 가정 해 보겠습니다. 이제 동일한 코드를 반복해서 쓰고 싶지 않을 것입니다. 따라서 암시 적으로 대기합니다. 그러나 하나의 요소 만 기다리려면 explicit을 사용하십시오.

2) 웹 요소를 표시 할 때뿐만 아니라 클릭 할 수도 있고 웹 요소의 다른 속성을 만족시킬 수도 있습니다. 이러한 종류의 유연성은 명시 적 대기만으로 제공 될 수 있습니다. 동적 데이터가 웹 페이지에로드되는 경우 특히 유용합니다. 명시 적 대기를 사용하여 DOM에 표시되는 요소 만 개발 될 때까지 기다릴 수 있습니다.

0

내 생각, 암시 적

대기 : 대기가 설정되어있는 경우 각 findElement/findElements 전화, 그것은 시간의 지정된 시간 동안 대기합니다. 액션이 완료되지 않으면 예외를 throw합니다.

명시 적 대기 : 대기가 설정되면 지정된 조건이 참이 될 때까지 대기하고 다음 단계로 넘어갑니다. 그렇지 않으면 지정된 시간 동안 대기 한 후에 예외가 발생합니다. 명시 적 대기는 지정된 모든 위치에 한 번만 적용됩니다.

1

암시 적 대기는 전체 테스트 스크립트에서 연속되는 각 테스트 단계/명령 사이의 기본 대기 시간을 제공하는 데 사용됩니다. 따라서 후속 테스트 단계는 이전 테스트 단계/명령을 실행 한 후 지정된 시간이 경과 한 경우에만 실행됩니다.

명시 적 대기는 특정 조건이 충족되거나 최대 시간이 경과 할 때까지 실행을 중지하는 데 사용됩니다. 암시 적 대기와 달리 Explicit 대기는 특정 인스턴스에만 적용됩니다.

관련 문제