작성
·
326
1
안녕하세요! 개복치님 덕분에 프로그래밍에 흥미를 갖고 있습니다.
다름이 아니라 하나 제가 시도하는 스크린샷찍기가 있는데
프로그램 로직 순서는 아래와 같습니다.
네이버 접속 -> 다음 입력 후 -> 다음 링크 홈페이지 클릭해서 접속 후 -> 해당 다음 홈페이지 스크린샷 찍기
하지만 해당 다음 홈페이지까지는 완벽히 가는데 그 후에 스크린샷을 찍으려하면 원래 처음 탭인 다음을 검색한 네이버로 창이
옮겨져가서 스크린샷을 찍습니다...그래서 문제를 찾아서 보니
driver.get 부분이 네이버로 되어있으서 네이버에가서 스크린샷을 계속 찍는데
driver.get 부분 소스코드를 스크린샷 찍기전 driver.get("https://www.daum.net/")
이렇게 다시 get 해서 다음으로 가서 스크린샷을 찍습니다만..
하지만 제가 원하는 홈페이지지 URL를 소스코드를 찾아서 계속 수기로 입력하는
방법인데 이러한 방법 보다 해당 홈페이지를 접속하면 해당 탭에 대한 스크린샷을 찍게 하는 방법은 없을까요?
혹시 몰라 소스코드 첨부합니다.
감사합니다!
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time
driver = webdriver.Chrome("./chromedriver")
driver.get("https://www.naver.com/")
driver.find_element_by_name("query").send_keys("다음")
time.sleep(2)
driver.find_element_by_name("query").send_keys(Keys.ENTER)
time.sleep(1)
driver.find_element_by_xpath('//*[@id="main_pack"]/div[2]/ul/li/dl/dt/a').click()
time.sleep(5)
driver.refresh()
time.sleep(1)
driver.get("https://www.daum.net/")
for i in range(1,6):
driver.get_screenshot_as_file("screendata/daum{}.png".format(i))
#스크롤 기능 적산 값이 아니라 계속 포인트를 지정해줘야 내려감
#1000만큼 내려서 1000만큼 더내리고 싶으면 0,2000 을 해줘야됨
driver.execute_script("window.scrollTo(0,{}000)".format(i))
time.sleep(3)
i += 1