남자, waitForPageToLoad condtion에 문제가 있습니다. 나는 C#을 Nunit과 함께 사용하고 있는데, 정확히 'waitForPageToLoad'/ 'waitForElementPresent'대신에 사용해야하는 것을 모른다. 어쩌면 누군가가 'waitForPageToLoad'/ 'waitForElementPresent'셀렌 2 사용할 수있는 방법을 알고 있습니까?'waitForPageToLoad'/ 'waitForElementPresent'- Selenium2에서의 사용법은 무엇입니까? (C#)
답변
새 페이지에서 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);
ISelenium selenium = new DefaultSelenium("localhost", 4444, "*chrome", "
http://localhost/UrlOfAppToTest/");
selenium.WaitForPageToLoad("30000");
찾고 계신가요?
안녕 찰리 - 정확히 :. 당신이 내 코드를 찾을 수 있습니다 아래 : 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
Thread.Sleep (TimeSpan.FromSeconds (10)); //이 줄은 현재 내 타임 아웃입니다. 문제는 스크립트가 셀레늄 1에서 항상 10 초를 기다리는 것과 같습니다. selenium.waitForPageToLoad ("3000"). 스크립트가 더 "지능적"이었기 때문에 페이지가 완전히로드 될 때까지 기다렸습니다 (때로는 3 초, 또 다른 시간은 9 초). googlegroups에서 하나의 해결책을 찾았습니다. http://code.google.com/p/selenium/issues/detail?id=549하지만 여기에서는 제 수업을해야합니다. – Pawel
이제 제 질문이 더 분명하게되기를 바랍니다. 그러나 당신은 하나의 흥미로운 것을 사용합니다, 나는 ISelenium에 대해 생각합니다 - 어느 라이브러리에서 찾을 수 있습니까? // 언어 선택 IWebElement jezyk = driver.FindElement (By.Id ("selLanguage"))); jezyk.Click(); var specificLanguage = driver.FindElement ( – Pawel
조치/페이지가로드 될 때까지 대기하는 데 명시적인 대기 메소드를 사용할 수 있습니다. 이 조건을 충족 시키려면 조건을 지정할 수 있으며 충족되면 테스트가 계속됩니다.
자세한 내용은참조 링크 : Selenium HQ, explicit wait
안녕 랜달, 당신의 응답을 주셔서 감사합니다, 그것은 정확히 내가 사용할 수 있습니다! – Pawel