셀렌 WebDriverWait 객체를 사용하여 코드에서 객체 감지 시간 초과를 동적으로 제어하고 있습니다. 그러나이 객체는 WebDriverWait 객체에 지정된 시간이 소비되기 전에 시간 초과됩니다. 예를 들어. 10 초 타임 아웃 시간 범위로 초기화 된 개체가 있지만 개체가 약 2 초 내에 시간 초과됩니다. 여기 WebDriverWait가 객체 초기화시 지정된 시간 범위 전에 예외를 던지고 있습니다.
내 코드WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
try
{
wait.Until(drv => (drv.FindElement(By.XPath(".//*[@class='TopTitle']")))); //drv.FindElement(By.XPath(".//*[@class='TopTitle']")) throws exception
}
catch
{
//exception handlers
}
내가 디버그 모드에서 실행하고 내가 분명히 drv.FindElement(By.XPath(".//*[@class='TopTitle']"))
2 ~ 3 초 이내에
예외 및 스택 추적 볼 수 있습니다
수 없습니다로를 요소 찾기 : { "method": "xpath", "selector": ".//*[class = 'TopTitle']"}
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (응답 e rrorResponse) OpenQA.Selenium.Remote.RemoteWebDriver.Execute (문자열 driverCommandToExecute에서
사전 파라메터) OpenQA.Selenium.Remote.RemoteWebDriver.FindElement에서
(문자열기구 문자열 값)
OpenQA.Selenium.Remote.RemoteWebDriver에서 .FindElementByXPath (String xpath)
at OpenQA.Selenium.By. <> C_ DisplayClasse.b _c OpenQA.Selenium.By.FindElement (ISearchContext 컨텍스트)에 OpenQA.Selenium.Remote.RemoteWebDriver.FindElement
에서
(기준에 의한) (ISearchContext 컨텍스트)에 VS_UnitTest.Navigation
. <> C_ DisplayClass2.b _0 (IWebDriver의 DRV)의 C : \ 힘내 \ WebadminTests \ WebAdminTests Navigation.cs \ : 라인 511 OpenQA.Selenium.Support.UI.DefaultWait.Until [TResult (Func을 조건)에서
로컬로 실행하면 관계없이 예외를 보게됩니다. Visual Studio는 기본적으로 대부분의 예외를 catch하고 표시하도록 설정되어 있습니다. – Arran
오늘까지는 예외가 발생하지 않았습니다. 그리고 나는 아직도 몇 달 동안 테스트했던 동일한 UI를 테스트 중입니다. 이제 요소가 명확하게 존재하는 홈 페이지에서도 예외가 발생합니다. 그러나 drv.FindElement (By.XPath (".//////class ="TopTitle '] "))) throws 요소 예외를 찾을 수 없습니다. –
그러면 WebDriverWait과 전혀 관련이없는 완전히 다른 문제가 발생합니다. 무엇이 바뀌 었습니까? 어떤 브라우저입니까? Selenium의 어떤 버전입니까? 최근에 업그레이드하셨습니까? 그렇지 않다면, 뒷받침 라이브러리가 변경되지 않은 경우 * 셀레늄이 잘못되었다는 것을 확신 할 수 있습니다. ** 전체 오류 및 스택 추적 **을 표시하십시오. – Arran