python+selenium QQ 메 일 자동 전송 기능 구현

python 은 로그 인 에서 자동 으로 qq 메 일 을 보 내 는 것 을 실현 합 니 다.참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
질문
계 정 비밀번호 로그 인 상 자 는 iframe 에 쓰 여 있 기 때문에 iframe 에 먼저 들 어가 야 아래 의 두 입력 상자 와 로그 인 단 추 를 찾 을 수 있 습 니 다.아래 그림 에서 iframe=login 을 볼 수 있 습 니 다.frame,우 리 는 driver.switch.to 를 사용 할 수 있 습 니 다.frame(“login_frame)iframe 에 들 어 갑 니 다.다음 두 입력 상자 와 로그 인 단 추 는 모두 id 속성 이 있 습 니 다.driver.find 만 사용 하면 됩 니 다.element_by_id("xxx")는 요 소 를 찾 을 수 있 습 니 다.
iframe 을 종료 하 세 요.그렇지 않 으 면 위치 추적 뒤의 모든 요소 가 실패 합 니 다(기억 하 세 요).iframe 을 종료 하면 driver.switch 를 쓸 수 있 습 니 다.to_default_content()로 이 루어 집 니 다.기호이 말 을 생략 하고 다음 요 소 를 찾 아 보 세 요.

홈 페이지 주의사항
홈 페이지 의 왼쪽 상단 에 있 는'편지 쓰기'단 추 를 누 르 면 요 소 를 볼 수 없습니다.첫 번 째 방법 은 페이지 의 다른 곳 에서 오른쪽 클릭 한 다음 요 소 를 보고 뷰 어 왼쪽 에 있 는 마우스 단 추 를 누 르 십시오.확인 할 수 있 습 니 다.두 번 째 방법 은'편지 쓰기'라 는 두 글자 에 따라 요 소 를 직접 찾 는 것 이다.우 리 는 이렇게 driver.findelement_by_link_text("편지 쓰기")
편지 페이지 주의사항
편지 페이지 는 모두 iframe 에 쓰 여 있 기 때문에 iframe 에 들 어가 서 받 는 사람의 입력 상 자 를 찾 아야 합 니 다.우 리 는 아래 페이지 코드 에서 class 의 값 을 볼 수 있 습 니 다.(유일한 것 이 아 닙 니 다)우리 의 상대 적 인 경로 의 모든 방법,driver.findelement_by_xpath("//*[@id=“toAreaCtrl”]//div[2]/input")。이렇게 하면 해결 할 수 있다.
글 아래 의 텍스트 상 자 는 네 가지 점 을 주의 하 십시오.첫 번 째,텍스트 상 자 는 iframe 에 있 습 니 다.두 번 째 는 텍스트 상자 에 속성 값 이 없 기 때문에 HTML 태그 이름 으로 찾 을 수 있 습 니 다.driver.findelement_by_tag_name(“body”);세 번 째 텍스트 상 자 는 먼저 클릭(click)하고 작성 해 야 합 니 다(sendkeys),먼저 클릭 하지 않 고 작성 하지 않 았 다 면 sendkeys("xxxx")내용 은 테마 뒤의 텍스트 상자 에 놓 입 니 다.네 번 째 는 iframe 을 탈퇴 하고 iframe="mainFrame"에 들 어 갑 니 다.탈퇴 하면 모든 iframe 이 탈퇴 하기 때 문 입 니 다.
전체 스 크 립 트

from selenium import webdriver
import unittest,time,traceback
from selenium.common.exceptions import TimeoutException,NoSuchElementException


class TestDemo(unittest.TestCase):
 def setUp(self):
 self.driver=webdriver.Firefox(executable_path='f:\\geckodriver')


 def test_sendqqemail(self):
 try:
  url = 'https://mail.qq.com/'
  self.driver.get(url)
  self.driver.maximize_window()
  self.driver.switch_to_frame("login_frame")
  self.driver.find_element_by_id("u").send_keys("   ")
  self.driver.find_element_by_id("p").send_keys("  ")
  self.driver.find_element_by_id("login_button").click()
  time.sleep(5)
  self.driver.switch_to.default_content() #  iframe,                 
  self.driver.find_element_by_id('composebtn').click()
  #      iframe=mainFrame   
  self.driver.switch_to_frame("mainFrame")
  time.sleep(3)
  self.driver.find_element_by_xpath("//*[@id='toAreaCtrl']/div[2]/input").send_keys("   ")
  #    
  self.driver.find_element_by_xpath('//input[@id="subject"]').send_keys("  ")
  #    iframe 
  self.driver.switch_to_frame(self.driver.find_element_by_class_name("qmEditorIfrmEditArea"))
  #self.driver.find_element_by_xpath("/html/body").send_keys('  ,  ')
  #    
  content=self.driver.find_element_by_tag_name("body")
  #  click(),         
  content.click()
  content.send_keys("    ")
  time.sleep(3)
  self.driver.switch_to.default_content()
  self.driver.switch_to_frame("mainFrame")
  #      
  self.driver.find_element_by_xpath('//a[.="  "]').click()
 except TimeoutException:
  print("          ")
 except NoSuchElementException:
  print("         ",traceback.print_exc())
 except Exception:
  print(traceback.print_exc())

 def tearDown(self):
 self.driver.quit()


 if __name__=="__main__":
 unittest.main()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기