셀레니움으로 크롬에서 pdf 다운하고 싶은데 막히네요. 아시는분 계실까요?

VBA
작성자
상큼애플
작성일
2023-11-01 16:09
조회
234
엑셀버전 : 엑셀2013

운영체제 : 기타

질문 요약 : 셀레니움으로 크롬에서 pdf 다운

제가 하고 싶은 것은 웹에서 열리는 pdf를 컴퓨터에 저장 되게 하고 싶습니다.

그래서 아래 VBA 작성하고 실행 하면 사진과 같이 웹 pdf가 열리게 됩니다.

여기서 문제가 생기네요..

F12 요소 선택시 그냥 전체 화면이 클릭이 되어 다운로드 버튼의 요소 선택이 안되는거에 막혀버렸습니다. (사진3)

그래서 다른 방법으로 찾은게 크롬 설정에서 PDF를 웹에서 여는게 아닌 저장되게 하는 설정이 있더라고요. 설정창 url로 들어가는거 까지 됬는데.

두가지 설정 버튼의 Class나 id가 동일 하다는거에서 막혀 버렸습니다.(사진1, 사진2)

둘다 해결 방법 아시거나 다른 좋은 방법 아시는분 있으시면 알려주세요. ㅠ

 

VBA 작성코드

Sub Sel()

Dim Sel As New Selenium.WebDriver

in_m = InputBox(prompt:="입력하세요.", Title:="")
in_c = InputBox(prompt:="입력하세요.", Title:="")

URL = "https://static.usp.org/pdf/EN/referenceStandards"
url_m = URL & "/" & in_m & "/" & in_c & ".pdf"
setting = "chrome://settings/content/pdfDocuments"

Sel.Start "chrome"
Sel.Get url_m

Sel.Wait 1000

End Sub

 

사진1 (PDF 다운로드 요소 선택 했을때, 노란박스의 1번은 체크박스, 2번은 체크박스 옆 글자 요소선택 했을경우 입니다.)

 

사진2 ( 'Chrome에서 PDF열기 요소 선택 했을때 )

 

사진 3

 

 

 

신고
스크랩
공유
회원등급 : 4레벨
포인트 : 155 EP
총질문 : 2 개 (마감율 : 100%)
채택답변 : 0 개
전체 8

  • 2023-11-03 13:25

    @상큼애플 님 저도 안되어서, gpt에게 질문하였더니, 아래와 같이 답을 하네요...


    죄송합니다만, Selenium이나 VBA로 크롬 브라우저의 내부 설정 페이지인 "chrome://settings/content/pdfDocuments"에 직접 접근하여 'PDF 다운로드' 부분을 클릭하는 것은 보안상의 제한 때문에 불가능합니다.

    크롬 브라우저의 내부 설정을 변경하려면, 사용자가 직접 브라우저 설정을 변경하거나, 크롬 브라우저의 커맨드 라인 옵션을 사용해야 합니다. 또는, 크롬 브라우저의 확장 프로그램을 사용하여 설정을 변경하는 방법도 있습니다.

    하지만, 이런 작업들은 복잡하며, 사용자의 컴퓨터나 브라우저의 보안 설정에 영향을 줄 수 있으므로, 이러한 작업을 수행하기 전에 충분히 고려해야 합니다. 어떤 목적으로 'PDF 다운로드' 설정을 변경하려는지에 따라 다른 방법을 찾아보는 것이 좋을 것 같습니다.

     


    아무래도 다른 방법을 찾아야할 듯... 원래 사이트에서 다운로드를 실행하거나, 다른 매크로프로그램(오토핫키 등)을 이용하는 방법을 찾아보시는건 어떨런지요..


    • 2023-11-03 15:06

      @피노키오99 님 아쉽네요ㅠㅠ 부족한 저의 질문에도 친절하게 답변 해주셔서 정말로 감사드립니다!


  • 2023-11-01 17:47

    @상큼애플 님 findelement에서 id 말고 full x path로 해보세요..

    저장 :

    /html/body/settings-ui//div[2]/settings-main//settings-basic-page//div[1]/settings-section[5]/settings-privacy-page//settings-animated-pages/settings-subpage/div/settings-radio-group/settings-collapse-radio-button[1]//div/div[2]/div[1]/div[1]

    열기 :

    /html/body/settings-ui//div[2]/settings-main//settings-basic-page//div[1]/settings-section[5]/settings-privacy-page//settings-animated-pages/settings-subpage/div/settings-radio-group/settings-collapse-radio-button[2]//div/div[2]/div[1]/div[1]


    • 2023-11-02 11:51

      @피노키오99 님 님 친절한 답변 감사드립니다!.  답변 주신데로 해보았는데. vba 실행하면 '7' 런타임 오류 라고 뜨는데 제가 잘못 할걸까요? 아래 문구 와 같이 했습니다.

      Sel.FindElementByXPath("/html/body/settings-ui//div[2]/settings-main//settings-basic-page//div[1]/settings-section[5]/settings-privacy-page//settings-animated-pages/settings-subpage/div/settings-radio-group/settings-collapse-radio-button[1]//div/div[2]/div[1]/div[1").Click


      • 2023-11-02 13:17

        @상큼애플 님 런타임 7 오류가 여러 원인으로 발생하는 걸로 알고 있습니다. 전체 소스코드를 모르니 정확한 답은 능력 부족으로 힘드네요.. 다만 위에 올리신 코드를 보면, click 명령 전에 div[1] 부분에서 마지막 "]" 이 빠진것으로 보이는데요.. 혹시 이 부분때문일까요? 결과가 궁금하네요..


        • 2023-11-02 17:20

          @피노키오99 님 답변 드리고 "]" 빠진걸 봐서 다시 해보았는데 같은 증상이 나타 나더라고요.

          아래와 같이 소스코드를 작성 하였고 가장아래 와같이 오류창(사진)처럼 뜨는데 혹시 아실까요?ㅠㅠ

          Dim Sel As New Selenium.WebDriver
          
              in_msds = "msds" 'InputBox(prompt:="MSDS or COA 입력하세요.", Title:="MSDS/COA")
              in_cats = "1228010" 'InputBox(prompt:="품목코드를 입력하세요.", Title:="품목코드")
              
              
              URL = "https://static.usp.org/pdf/EN/referenceStandards"
              url_msdscats = URL & "/" & in_msds & "/" & in_cats & ".pdf"
              setting = "chrome://settings/content/pdfDocuments"
            
              
              Sel.Start "chrome"
              Sel.Get setting
              Sel.Wait 1000
              
              Sel.FindElementByXPath("/html/body/settings-ui//div[2]/settings-main//settings-basic-page//div[1]/settings-section[5]/settings-privacy-page//settings-animated-pages/settings-subpage/div/settings-radio-group/settings-collapse-radio-button[1]//div/div[2]/div[1]/div[1]").Click
          
          


  • 2023-11-01 17:47
    채택된 답변

    • 2023-11-02 11:54

      @원조백수 님 답변 감사드립니다!. 업무하다가 겉핡기 식으로 배운거라 명령어 조차 제대로 못만들어서 이렇게 명령어를 만들어서 할 생각을 못했네요ㅠㅠ

      해당 방법과 같이 하니 특정 폴더에 파일이 다운로드 됩니다! 감사합니다! 그런데 셀레니움으로는 해결하지 못하고 있네요ㅠ


전체 13,309
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚교재 출간 안내] 「진짜쓰는 실무엑셀」 , 드디어 출간되었습니다! (235)
오빠두엑셀 | 2022.02.03 | 추천 514 | 조회 259456
오빠두엑셀 2022.02.03 514 259456
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 280 | 조회 17672
오빠두엑셀 2021.10.28 280 17672
64371 구글시트
New 두 개 시트 연동
RecSoo | 16:57 | 추천 0 | 조회 1
RecSoo 16:57 - 1
64370 함수/공식
New 모든시트를 선택하는 함수가 있을까요?ㅠㅠ
myyh**** | 16:28 | 추천 0 | 조회 8
myyh**** 16:28 - 8
64369 VBA
New 고수님들 문의드립니다. 코드가 무엇이 잘못된지 모르겠습니다..
심금택 | 16:20 | 추천 0 | 조회 9
심금택 16:20 - 9
64367 VBA
New 특정셀에 여러 변수 값을 대입하여 나오는 계산 값을 변수에 맞게 한번에 출력되게 하는 방법이 있을까요?? 엑셀파일첨부파일
박재관 | 16:01 | 추천 0 | 조회 10
박재관 16:01 - 10
64366 문서서식
New 전체인쇄와 시트1개 인쇄시 이미지 품질 저하문제 첨부파일 (2)
코코마 | 15:23 | 추천 0 | 조회 14
코코마 15:23 - 14
64360 함수/공식
New 각 열의 텍스트를 비교하여 일치율에 따라 관련열 값 가져오기 첨부파일 (1)
요코하마박 | 13:50 | 추천 0 | 조회 26
요코하마박 13:50 - 26
64359 구글시트
New 엑셀 또는 구글시트 - 다른시트 데이터의 새로운값만 순차적으로 가져오는방법.. (3)
myyh**** | 13:42 | 추천 0 | 조회 23
myyh**** 13:42 - 23
64355 함수/공식
New sumifs 문의 드립니다. (2) 답변완료
sarangh**** | 12:43 | 추천 0 | 조회 23
sarangh**** 12:43 - 23
64353 함수/공식
New 엑셀 수식이 안 먹어요~ 엑셀파일 (2)
안녕 | 11:40 | 추천 0 | 조회 35
안녕 11:40 - 35
64352 VBA
New 명령단추 클릭시 색상변경 엑셀파일첨부파일 (1)
본아이디 | 11:39 | 추천 0 | 조회 25
본아이디 11:39 - 25
64351 VBA
New Sendkey 초기화 관련 문의
임정호 | 11:27 | 추천 0 | 조회 18
임정호 11:27 - 18
64340 함수/공식
New 셀 값을 변경하는 수식 사용 중에 작동이 안돼서 문의드립니다. 첨부파일 (4)
슈바츠론 | 09:35 | 추천 0 | 조회 27
슈바츠론 09:35 - 27
64333 함수/공식
New 실시간 데이터 연동 방법 좀 알려주실 수 있나요?? (2)
dfgkdflglkdf | 00:27 | 추천 0 | 조회 41
dfgkdflglkdf 00:27 - 41
64329 함수/공식
New IF와 VLOOKUP을 같이써서 처리를 해야하는 셀인데 어떻게 해야 맞는지 모르겠네요 ㅠㅠ... 첨부파일 (2)
fkdn**** | 2023.11.29 | 추천 0 | 조회 52
fkdn**** 2023.11.29 - 52
64327 함수/공식
New 몇주째 도저히 모르겠습니다ㅜㅜ 일별/주간/월별 데이터 불러올 함수 알려주실분 꼭 부탁드립니다. 엑셀파일 (5) 답변완료
shin**** | 2023.11.29 | 추천 0 | 조회 84
shin**** 2023.11.29 - 84
64326 구글시트
New 엑셀이나 구글시트에서 특정 데이터를 입력하면 표시,금지 할수있는 방법을 알수있을까요 ? (2)
다운이남편 | 2023.11.29 | 추천 0 | 조회 37
다운이남편 2023.11.29 - 37
64325 함수/공식
New 엑셀함수관련 문의드립니다 기초적인부분이지만 해결방법이 궁금합니다 첨부파일 (3) 답변완료
gnsdlgns | 2023.11.29 | 추천 0 | 조회 46
gnsdlgns 2023.11.29 - 46
64320 파워쿼리/피벗
New 파워쿼리 엑셀 파일 불러오기 액세스 거부 ㅜㅠ 첨부파일 (1)
방글당근 | 2023.11.29 | 추천 0 | 조회 38
방글당근 2023.11.29 - 38
64317 VBA
New 집계함수를 반영하니 계산시간이 많이 걸립니다 다른방법이 없는지요 엑셀파일 (3)
슈토파이터 | 2023.11.29 | 추천 0 | 조회 58
슈토파이터 2023.11.29 - 58
64316 문서서식
New 조건부서식 하나가 막히는 데 도와주세요 첨부파일
수캄 | 2023.11.29 | 추천 0 | 조회 47
수캄 2023.11.29 - 47
64312 함수/공식
New 특정 텍스트 추출 엑셀파일첨부파일 (4)
ggplay**** | 2023.11.29 | 추천 0 | 조회 69
ggplay**** 2023.11.29 - 69
64311 함수/공식
New 함수 문의 첨부파일 (1)
비갠오후 | 2023.11.29 | 추천 0 | 조회 49
비갠오후 2023.11.29 - 49
64310 함수/공식
New 기간 중복을 제외하고 주당 사용 일수 계산 문의드립니다. 엑셀파일첨부파일 (2)
함수시르미 | 2023.11.29 | 추천 0 | 조회 29
함수시르미 2023.11.29 - 29
64294 함수/공식
New 표준편차 계산시 특정월의 데이터만 계산하고 싶습니다 엑셀파일첨부파일 (2)
전설 | 2023.11.29 | 추천 0 | 조회 37
전설 2023.11.29 - 37
64292 함수/공식
New 다중조건으로 다른문서 데이터 가져오기 엑셀파일 (4) 답변완료
abc472091z | 2023.11.29 | 추천 0 | 조회 51
abc472091z 2023.11.29 - 51
64287 차트/그래프
New 자동 생성/변경 차트 문의 첨부파일 (1)
나짱보이 | 2023.11.28 | 추천 0 | 조회 43
나짱보이 2023.11.28 - 43
64286 함수/공식
New SUMIF 함수 문의드립니다. !! 첨부파일 (2)
김태훈 | 2023.11.28 | 추천 0 | 조회 61
김태훈 2023.11.28 - 61
64281 VBA
New 거래처 조회 엑셀파일 (7)
슈토파이터 | 2023.11.28 | 추천 0 | 조회 75
슈토파이터 2023.11.28 - 75
64278 피벗테이블
New 피벗테이블를 이용하여 차트 만들 때 평균을 표시하고 싶습니다~! 엑셀파일첨부파일 (5) 답변완료
| 2023.11.28 | 추천 0 | 조회 55
2023.11.28 - 55
64266 함수/공식
New 엑셀 수식 수정 어떻게 해야될까요?? 엑셀파일 (1)
편안하게 | 2023.11.28 | 추천 0 | 조회 65
편안하게 2023.11.28 - 65