execute_async_script() 메서드 (Java에서는 JavascriptExecutor.executeAsyncScript, .NET에서는 IJavaScriptExecutor.ExecuteAsyncScript())를 살펴 봐야 콜백 함수를 기다릴 수 있습니다. 콜백 함수는 JavaScript 함수의 arguments
배열에 자동으로 추가됩니다. 그래서, 당신은 당신이 원하는 조건까지 대기 페이지에 이미 자바 스크립트 함수를 가정하면 다음과 같이 할 수있는 (아래 자바 코드를 C# 및 파이썬 코드는 비슷해야) :
String script = "var callback = arguments[arguments.length - 1];"
+ "callback(myJavaScriptFunctionThatWaitsUntilReady());";
driver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS);
((JavascriptExecutor)driver).executeAsyncScript(script);
그것은 수도 더욱 영리 해지고 콜백 함수를 적절한 데이터를 반환하는 이벤트에 직접 전달할 수 있습니다. 프로젝트 JavaDocs에서 executeAsyncScript() 함수에 대한 자세한 정보를 찾을 수 있으며 프로젝트 소스 트리에서 이에 대한 샘플 코드를 찾을 수 있습니다. this file의 테스트에서 XHR을 완료하기를 기다리는 좋은 예가 있습니다.
SauceLabs에서 사용할 수있는 Python 바인딩 버전에서 아직이 기능을 사용할 수 없다면 이전 버전에서 사용할 수있을 것으로 기대됩니다. 틀림없이 어떤 의미에서는 테스트 케이스의 "원하는 상태에 대한 설문 조사"를 JavaScript로 푸시하는 것이지만 테스트가 더 읽기 쉽도록 만들 것입니다.
감사의 말씀입니다. –