2011-10-06 2 views
1

후 실패 우리는 AJAX 호출이 같은 사용을 완료 여부를 테스트하는 ISelenium.WaitForCondition 방법을 사용하십시오셀레늄 WaitForCondition 30 분 대신 20 초 우리의 기능 테스트에서

:

_selenium.WaitForCondition("!selenium.isElementPresent(\"" + locator + "\")", "20000"); 

때로는이 코드가 SeleniumException 실패를

Selenium.SeleniumException: ERROR: Command timed out 

하지만 그 대신 20000 MS는 실패 30 분 정도 소요되며 그 후 모든 후속 셀레늄 호출이 실패 뭔가 같은 :

SeleniumException : ERROR Server Exception: unexpected command 
json={command:"waitForCondition",target:"!selenium.isElementPresent(\"//div[contains(@id, \'atlProgress\') and contains(@style, \'display: block\')]\")",value:"20000"} 
in place before new command waitForCondition could be added 

우리는 .NET Selenium 포트를 사용합니다 : ThoughtWorks.Selenium.Core, Version = 2.7.0.0 및 WebDriver가 아닙니다.

이러한 오류를 방지하려면 어떻게해야합니까?

답변

0

셀레늄 사용하는 (적어도)이 타임 아웃 :

  • 하나가 다양한 '대기'명령을하고 자바 스크립트가 대기하는 브라우저로 보낼 수 있습니다

    - 당신은 정확하게 당신이 할 일부 전화에서 보낼 수 있습니다 'waitForCondition';

  • 다른 하나는 서버 시간 초과입니다.이 값은 Selenium 서버가 'Command timed out'오류를 반환하기 전에 브라우저에서 응답을 기다리는 시간을 제어합니다.

난 당신이 명령이 20 초 동안 기다려야 보내 당신이 직면하고있는 문제는 생각하지만, 서버가 브라우저에서 응답을 얻을 수없는 30 분 동안 기다립니다 않았다. 서버 시간 제한을 어딘가에 30 분으로 설정했다고 생각합니다.

응답이 없으면 브라우저가 중단되거나 정지되어 '예상치 못한 명령'오류가 발생할 수 있습니다. 나는이 케이스를이 answer에 좀 더 자세하게 설명한다.

관련 문제