2016. 2. 27. 01:50

Selenium에서 Iframe 집어 내는 방법

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요.

웹페이지 오토메이션 작업을 진행하다 보면, late binding 처럼 늦게 로딩되는 페이지 소스가 있습니다.

즉 Javascript를 실행하기 위해서 로드 안된 Iframe의 함수를 호출하면 Not define 에러가 나는데요.

Selenium을 사용하면 간단히 해결이 됩니다.

위의 By 함수는 해당 element를 ID, ClassName, Title, Value 등등 다양한 html 속성을 토대로 찾아 내 줍니다.

이렇게 해서 IWebElement 로 받은 후 해당 요소를 찾으면 됩니다.

어떤 연유 인지는 모르겠으나, Browser 내부에서 처리 하는 방식은 클릭 중심으로 해당 Frame을 읽는게 아닌가 싶습니다.

정확히 말하면 클릭이 발생한 element를 소속 HTML을 로딩해서 처리 하는게 아닌가 싶습니다.

Iframe같은 경우 html 메인 페이지의 예하 이니, 클릭 발생된 요소를 html안에서 찾은 후 해당 frame을 Current html로 지정 후 실행되는게 아닌가 싶습니다.

감사 합니다.