91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python+selenium實現QQ郵箱自動發送功能

發布時間:2020-10-05 02:06:01 來源:腳本之家 閱讀:185 作者:知否,知否 欄目:開發技術

python實現從登錄到自動發送qq郵件,供大家參考,具體內容如下

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()來實現(個人發現to后面用“.”還是“_”符號,都可以將后面顯示出來)。大家可以嘗試下,把這句話省略,接著定位下面的元素。

python+selenium實現QQ郵箱自動發送功能

主頁面注意事項

主頁面上左上角的“寫信”按鈕,你右擊是不會顯示查看元素的,第一種方法,我們首先在頁面其他地方右擊,接著選中查看元素,然后用查看器左邊的那個鼠標按鈕去點擊“寫信”按鈕。就可以查看到。第二種方法,直接根據“寫信”兩個字去定位元素。我們可以這樣driver.find_element_by_link_text(“寫信”)

寫信頁面注意事項

寫信頁面都寫在iframe里面,所以要進入iframe中,然后定位收件人的輸入框,我們可以從下面的頁面代碼中看到class的值有很多地方都用到(不是唯一),所有我們相對路徑的方法,driver.find_element_by_xpath("http://*[@id=“toAreaCtrl”]//div[2]/input")。這樣就可以解決了。

文下面的文本框注意四點,第一點,文本框在一個iframe中;第二點,文本框沒有任何的屬性值,所以我們可以使用HTML標簽名定位,driver.find_element_by_tag_name(“body”);第三點文本框需要先點擊(click),在編寫(send_keys),如果沒有先點擊在編寫,那么你send_keys(“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("http://*[@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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武胜县| 宁国市| 克山县| 孟州市| 贵港市| 湘阴县| 丰县| 司法| 台江县| 云和县| 拉萨市| 瑞安市| 城市| 宁都县| 读书| 漳州市| 长沙市| 治多县| 沁水县| 闵行区| 宁明县| 惠东县| 弥勒县| 蒙自县| 镇雄县| 梓潼县| 理塘县| 金乡县| 林州市| 长春市| 延边| 桂林市| 湘潭县| 武鸣县| 朝阳市| 博客| 澄迈县| 孙吴县| 拜城县| 高州市| 北票市|