c# visualstudio 실시간으로 확인하는 방법

안녕하세요 페이스북 크리에이터 입니다.

간단한 메크로로 글을 쓰고 있는데 자꾸 팝업이 뜨는데 그 팝업이 대중없이 아무 때나 떠서 프로그램이 멈추고 하네요.

void popupkill()
{
    try // 닫기 버튼 제거
    {
        driver.FindElement(By.CssSelector("[class='popupclose']")).Click();
    }
    catch { }
}

이런 식으로 만들어서 popupkill() 함수를 만들어서 새로 고침 하고 나오면 바로 닫아주는데 이게 아무 때나 막 나와서 프로그램이 자꾸 멈춥니다. 그렇다고 저 함수를 모든 코드에 넣을 수도 없고요.

그래서 실시간으로 계속 체크하면서 팝업이 뜨면 자동으로 닫아주고 싶은데 방법이 없을까요? 고수님들 부탁 드립니다.

어떤 프레임워크로 페이지에 접근하고 계신가요?
혹시 selenium일까요?

네 그렇습니다. selenium으로 하고있습니다.

좋아요 1

팝업 노출을 막는 크롬 드라이버 옵션을 적용해서 해결 되는지 확인해보시면 좋을 것 같습니다.

다만, 이 방법은 드라이버 쓰는 동안 전체 페이지에 영향을 주기 때문에 중간에 팝업을 써야 되는 시나리오가 있으시면 다른 방법을 찾아야 합니다.
지금 당장 떠오르는 방법은 페이지 로드 완료시 window.alert 함수를 재정의하는 코드를 삽입하는 방식이 있겠네요.

좋아요 1

감사합니다. 한번 해보겠습니다.

좋아요 1

테스트 해 보고 공유 드리려고 하는데 팝업 뜨는 사이트 알려주실 수 있을까요?
코드보다 팝업 뜨는 사이트를 찾는게 더 힘드네요 ㅠㅠ

테스트 했던 코드입니다.

ChromeOptions options = new ChromeOptions();
options.AddExcludedArguments(new [] {"enable-automation", "disable-popup-blocking" });
var driver = new ChromeDriver(@"c:\chromedriver", options);

참고한 영상도 공유 드려요. selenium java 버전

하다보니 느낀건데 크롬 브라우저에 adblock 확장을 설치하고, driver를 그 브라우저를 상대로 실행하면 굳이 옵션을 주지 않아도 되겠네요.

좋아요 1

감사합니다. 해결했습니다. 쓰레드로 해서 실시간으로 체크해서 해결했습니다. 많은 도움되었습니다. 감사합니다. ^^

좋아요 1