2010-06-15 9 views
9

Selenium이 사이트를 방문 할 때 검색되는 모든 파일을 저장하는 가장 좋은 방법은 무엇입니까? 즉, Selenium이 http://www.google.com을 방문하면 iframe에 포함 된 HTML, JavaScript (src 태그에서 참조 된 스크립트 포함), 이미지 및 잠재적 콘텐츠를 저장하려고합니다. 어떻게 할 수 있습니까?Selenium을 사용하여 전체 페이지 콘텐츠 저장

getHTMLSource()는 메인 프레임 본문에 HTML 콘텐츠를 반환하지만이 페이지를 다시 렌더링하는 데 필요한 전체 파일 세트를 다운로드하려면 어떻게 확장 할 수 있는지 알고 있습니다. 미리 감사드립니다.

+0

찾았습니까? – Toolkit

답변

9

셀레늄이이 설계되지 않았습니다, 당신은 할 수 중 하나

  1. 사용 getHtmlSource하고 당신이 다운로드하고 셀레늄의 외부 저장할 수있는 외부 파일에 대한 참조에 대한 결과 HTML을 구문 분석합니다.
  2. 웹 사이트의 오프라인 버전을 다운로드하고 저장하는 데 Selenium 이외의 것을 사용하십시오. 검색을 수행 할 때이 작업을 수행 할 수있는 도구가 많이 있습니다. 예를 들어 WGet은 재귀 적 다운로드를 수행 할 수 있습니다 (http://en.wikipedia.org/wiki/Wget#Recursive_download)

Selenium을 사용하려는 이유가 있습니까? 이 부분이 테스트 전략의 일부입니까, 아니면 페이지의 오프라인 복사본을 만들 도구를 찾고 싶습니까?

+0

Selenium을 사용하려는 이유는 전체 페이지 (광고 트래픽 포함)를 재구성하는 데 필수적인 JavaScript를 파싱하기 때문입니다. – Rick

+0

필자의 경우 속도면에서 Selenium을 사용하여 다운로드를 수행하고 싶습니다. 나는 Selenium과 Chrome에 페이지를로드해야한다. 모든 HTTP 요청을 다시 실행하지 않고 현재로드 한 내용을 저장하지 않을 것이다. – Seanny123

+1

+1 - WGet은 내가 필요한 것에 완벽한 솔루션임을 입증했습니다. 기본적으로 PDF로 결과를 로컬에 저장하려는 의도로 웹 URL (동적으로 생성 된 PDF)을 호출합니다. –

1

그 좋은 도구는 http://www.httrack.com/입니다. Selenium은 API를 제공하지 않습니다. 셀레늄에서 테스트 케이스의 전체 페이지 내용을 저장해야하는 경우 httrack을 명령 줄 도구로 실행할 수 있습니다.

감사

1

당신이 정말로 당신이 할 수있는 다음 셀레늄을 사용하려면 페이지를 저장하기위한 Ctrl+S을 모방하지만, 그것은 더 많은 작업 Enter를 누르거나 위치를 변경 에뮬레이션/(또한 OS에 따라 다름) 어렵다 여기서 웹 페이지와 그 내용을 저장하려고합니다.

내가 셀레늄과 같은 일을하고 싶어하지만 난 그냥 wget 같은 도구를 사용할 수 있고, 정말 만 .. 셀레늄을 사용하지 않았다는 것을 깨달았다 그래서, 정말 강력 wget를 사용하여 결국 그것은 않습니다 정확히 내가 필요한 것.

당신이 온라인 아직도 것처럼이 가능한 페이지를 오프라인으로 볼 수 있도록 단지 통과 wget

# Save HTML 
    directory = 'directory_to_save_webpage_content/' 
    url = 'http://www.google.com' 
    wget = "wget -p -k -P {} {}".format(directory, url) 
    os.system(wget) 

인수를하는 사용하여 할 것이다 방법이다.

--page-requisites   -p -- get all images needed to display page 
--convert-links    -k -- convert links to be relative 
--directory-prefix   -P -- specify prefix to save files to 
+0

하지만 wget이 javacript – Toolkit

+0

을 실행하지 않았습니다.이 모든 것을 시도했는데 반환 된 모든 것은 대화식 창 1이었습니다. 내 디렉토리에 출력이 없습니다. – ShaunO

관련 문제