0w0

[selenium] 티스토리 자동 로그인 및 자동 posting, iframe접근 본문

Coding/Python

[selenium] 티스토리 자동 로그인 및 자동 posting, iframe접근

0w0 2019. 8. 10. 03:57
728x90
반응형
#coding=utf-8

import sys
import io
import time
from selenium import webdriver


class tistory_connection:
    #초기화, webdriver 설정
    def __init__(self):
        self.bs_driver=webdriver.Chrome('C:\Workspace\webdriver\chrome\chromedriver')
        #self.bs_driver.set_window_size(x, y)

    #티스토리 로그인과 게시글작성
    def loginNwrite(self):
        self.bs_driver.get('https://www.tistory.com/auth/login/?redirectUrl=https%3A%2F%2F3210w0.tistory.com%2Fmanage')
        self.bs_driver.find_element_by_id('loginId').send_keys('IDIDID')
        self.bs_driver.find_element_by_id('loginPw').send_keys('PWPWPW')

        self.bs_driver.implicitly_wait(1)
        self.bs_driver.find_element_by_xpath("""//*[@id="authForm"]/fieldset/button""").click()

        self.bs_driver.get('https://3210w0.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F')

        #제목 subject
        self.bs_driver.find_element_by_class_name('textarea_tit').send_keys('글적글적')

        ###iframe!!!!
        self.bs_driver.implicitly_wait(1)
        #print(self.bs_driver.find_elements_by_css_selector('iframe')[0])
        #출력 결과
        #< selenium.webdriver.remote.webelement.WebElement(session="e70df225f38d3bf229d3032bc3420881",element="8b9a8221-a05e-4339-856c-c3792cc5e73b") >

        #첫번째 iframe 정보르 가져옴.(내용 작성부분 POST는 첫번째 iframe 이기 때문임)
        self.iframe=self.bs_driver.find_elements_by_css_selector('iframe')[0]

        #iframe 구성으로 전환
        self.bs_driver.switch_to_frame(self.iframe)

        self.bs_driver.implicitly_wait(1)
        self.bs_driver.find_element_by_id('tinymce').send_keys('test input')
        self.bs_driver.find_element_by_xpath("""//*[@id="tinymce"]""").send_keys('\ntest input2')
        ###iframe!!!!

        #기본 구성으로 전환
        self.bs_driver.switch_to_default_content()

        time.sleep(0.1)
        #완료 버튼 클릭
        self.bs_driver.find_element_by_xpath("""//*[@id="kakaoWrap"]/div[3]/div[2]/button""").click()

        time.sleep(0.1)
        #공개발행 버튼 클릭
        self.bs_driver.find_element_by_xpath("""/html/body/div[6]/div/div/div/form/fieldset/div[3]/div/button[2]""").click()

        time.sleep(5)
        self.bs_driver.quit()

if __name__=='__main__': #인터프리터 직접 실행 일 경우에만 실행도록하는 경우에 사용, 네임스페이스
    #객체 생성
    client=tistory_connection()

    #스크립트 동작 시작 시간
    start_time=time.time()

    #프로그램 실행
    client.loginNwrite()

    #동작 시간
    running_time=time.time()-start_time
    print(running_time)

    #객체 소멸
    del client
 
728x90
반응형
Comments