이전편까지의 셀레니움기능들로 대부분의 간단한 매크로를 만들 수 있습니다.

게시글 제목만 가져오기, 특정기간내의 게시글 가져오기, 여러계정들의 정보바꾸기 등등

 

하지만 다음 페이지로 넘어가고 페이지 로딩이 되지도 않았는데 프로그램은 페이지가 로딩 안된지 몰라서 다음 단계로 진행할 수 있습니다. 

 


웹 로딩 대기

1.

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

해당코드는 페이지로딩까지 최대 10초까지 기다린다는 뜻 입니다

10초내로 페이지로딩이 완료되면 다음 작업을 진행하고 10초가 넘어가면 더이상 기다리지않고 다음 작업을 진행하게됩니다

한번만 설정하면 모든 드라이버에서 적용됩니다

원하는 '초'단위의 숫자를 입력하시면 됩니다


2.

WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(10));
IWebElement SearchResult = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(xpath)));

10초동안 xpath요소가 존재할때까지 대기한다는 뜻입니다

여기서 특별한 셀레니움기능이 추가되는데

해당 패키지를 먼저 설치하셔야 합니다


3.

Thread.Sleep(1000);

특정 상황에서는 페이지로딩을 기다려도 특정한 이유로 더 기다려야하는 상황이 생길 수 있습니다

이럴 땐 강제로 슬립을 걸어서 기다리는 방법이 있습니다.

ms단위 이므로 1초를 기다리려면 위의 코드처럼 1000으로 입력해야합니다

 


자바스크립트

IJavaScriptExecutor _js = (IJavaScriptExecutor)_driver;
_js.ExecuteScript(js);

이건 별거 없고 이렇게 바로 실행해주시면 됩니다

 

https://github.com/ForestBird1/TestSelenium.git

 

GitHub - ForestBird1/TestSelenium

Contribute to ForestBird1/TestSelenium development by creating an account on GitHub.

github.com

 

+ Recent posts