2011-04-19 7 views

답변

0

새 페이지에서 FindElement()를 사용합니다. 요소가 발견 될 때까지 최대 대기 시간을두고 시도 할 루프에서 랩하십시오.

// pseudocode WebElement wait_for_element(By locator) 
while (!timeout) { 
    try { 
    return driver.FindElement(locator); 
    } catch (Exception) { 
    Thread.sleep(1000); 
    } 
    // check for timeout here 
} 
throw new NoSuchElementException("Timeout waiting for "+locator); 
+0

안녕 랜달, 당신의 응답을 주셔서 감사합니다, 그것은 정확히 내가 사용할 수 있습니다! – Pawel

0
ISelenium selenium = new DefaultSelenium("localhost", 4444, "*chrome", " 
    http://localhost/UrlOfAppToTest/"); 
selenium.WaitForPageToLoad("30000"); 

찾고 계신가요?

+0

안녕 찰리 - 정확히 :. 당신이 내 코드를 찾을 수 있습니다 아래 : driver.Navigate()를 GoToUrl ("http://www.skyscanner.net?ncr=1 "); IWebElement query = driver.FindElement (By.Id ("country_selection_box")); query.Click(); var 국가 = driver.FindElement ( ) .CssSelector ("html body.lang-pl div # user_country_panel_popup div.bd div.content select")); country.SendKeys ("Great Britain"); country.Click(); country.Clear(); – Pawel

+0

Thread.Sleep (TimeSpan.FromSeconds (10)); //이 줄은 현재 내 타임 아웃입니다. 문제는 스크립트가 셀레늄 1에서 항상 10 초를 기다리는 것과 같습니다. selenium.waitForPageToLoad ("3000"). 스크립트가 더 "지능적"이었기 때문에 페이지가 완전히로드 될 때까지 기다렸습니다 (때로는 3 초, 또 다른 시간은 9 초). googlegroups에서 하나의 해결책을 찾았습니다. http://code.google.com/p/selenium/issues/detail?id=549하지만 여기에서는 제 수업을해야합니다. – Pawel

+0

이제 제 질문이 더 분명하게되기를 바랍니다. 그러나 당신은 하나의 흥미로운 것을 사용합니다, 나는 ISelenium에 대해 생각합니다 - 어느 라이브러리에서 찾을 수 있습니까? // 언어 선택 IWebElement jezyk = driver.FindElement (By.Id ("selLanguage"))); jezyk.Click(); var specificLanguage = driver.FindElement ( – Pawel

0

조치/페이지가로드 될 때까지 대기하는 데 명시적인 대기 메소드를 사용할 수 있습니다. 이 조건을 충족 시키려면 조건을 지정할 수 있으며 충족되면 테스트가 계속됩니다.

자세한 내용은

참조 링크 : Selenium HQ, explicit wait