학습 곡선에서 나는 요소가로드 될 때까지 기다렸다가 google에서 많은 페이지를 얻었습니다.잠깐 혼란스러운 요소 찾기 Selenium C#
내 의견으로는 Method2 (ExpectedConditions.ElementIsVisible)가 더 우아하고 달성하고자하는 method1이 무엇인지 동의합니까 아니면 더 좋은 방법이 있습니까?
방법 1
public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
{
if (timeoutInSeconds > 0)
{
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
return wait.Until(drv => drv.FindElement(by));
}
return driver.FindElement(by);
}
방법 2
public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
var element = wait.Until(ExpectedConditions.ElementIsVisible(by));
return element;
}
모든 NoFoundElement 예외가 이미 처리 던져 또는 그것을 무시해야 "하면 어떻게 또한 어떤 제안이나 개선?
내가 생각했던 것을 확인해 주셔서 감사합니다. DefaultWait과 WebdriverWait의 차이점을 알고 있습니까? 나는 혼란 스럽다 – developer9969
'DefaultWait'는'WebDriverWait'의 기본 클래스입니다. 'DefaultWait'는 일반적인 구현 (예를 들어, 타입 파라미터'T')을 가지며,'WebDriverWait'는'TW'가'IWebDriver'가되는 DefaultWait의 서브 클래스입니다. 'DefaultWait'의 아이디어는 당신이 기다리고있는 이벤트가 이미 발생했는지를 결정하기 위해'T' 객체의 도움을 받아 물건을 기다리는 표준화 된 방법을 가질 수있게 해준다는 것입니다. 'WebDriverWait'는'IWebDriver' 객체를 사용하여 이벤트가 발생했는지를 결정하는 방식으로 그 기능을 사용합니다. –