日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

email邮件中 内嵌iframe_Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件...

發布時間:2025/3/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 email邮件中 内嵌iframe_Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上文中,介紹了如何用python+selenium自動化測試實戰:郵箱登錄為例驗證了登錄成功的測試用例。那如果我們每次執行的結果都要去代碼中查看,是不是也挺費勁的。應該怎么做呢?如果程序執行報錯或者執行測試用例成功后,發送郵件通知我,咱就不用再打開代碼去查看執行結果了,只需每天關注自己的郵件,執行失敗的部分,進行提bug或者修改代碼就可以了

如何用Python代碼的形式實現自動發送SMTP郵件呢?

一、準備工作

需要進行開啟要進行發件的郵箱的SMTP的授權,并生成授權碼,在發送郵件是輸入的密碼為授權碼,開啟方式如下:

以qq郵箱為例:

設置——》賬戶——》下拉到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務”

——》開啟服務:POP3/SMTP服務 (如何使用 Foxmail 等軟件收發郵件?)——》點擊開啟并生成授權碼(備注:開啟授權需要發短信)。生成后的結果如圖

二、還是同樣的在進行寫代碼之前,首先我們先理一下思路:

1.發送郵件我們需要輸入什么?

(1)標題

(2)內容

(3)誰來發?

(4)發給誰?

2.發送過程有哪些?

(1)建立郵箱連接協議

(2)登錄郵箱,登錄郵箱時需要發送方的授權碼

(3)點擊發送

三、理完思路后,我們如何實現呢?

1.輸入數據

(1)郵件的標題,需要引入import Header 這個模塊,用里面的Header()方法

(2)郵件的內容,需要import MIMEText這個模塊,使用MIMEText()函數,進行內容的數據的構建

(3)誰來發,目前不清楚,但是可以用一個請輸入:from_email=input('請輸入發件人郵箱名:')

(4)發給誰,to_email=input('請輸入接收人郵箱')

2.發送過程:

(1)建立郵箱連接協議:

首先需要引入import smtplib模塊,stmp=smtplib.SMTP(),建立連接:stmp.connect('smtp.qq.com',25)

(2)登錄郵箱,登錄郵箱時需要發送方的授權碼

授權碼:pwd=input('請輸入授權碼:') 登錄:stmp.login(from_email,pwd)

(3)點擊發送:stmp.sendmail()

四、以上分析完之后就可以進行代碼實現了

1.首先我先把之前登錄的郵箱登錄這文中的代碼封裝成函數

from selenium import webdriver import time def email_login(url):#封裝登錄函數,url為形參,方便函數的調用driver=webdriver.Chrome()#打開瀏覽器driver.maximize_window()#最大化瀏覽器driver.get(url)# 輸入網址,并發送請求 ,得到頁面顯示driver.find_element_by_id("lbNormal").click()driver.switch_to.frame(driver.find_element_by_xpath("//div/div[3]/div[4]/div/div/iframe"))# driver.find_element_by_name("email").send_keys("自己郵箱的用戶名")driver.find_element_by_name("password").send_keys("自己郵箱的密碼")driver.find_element_by_id("dologin").click()driver.switch_to.default_content()#跳出framedriver.implicitly_wait(5)#智能等待result=driver.find_element_by_class_name("nui-tree-item-text").text#找到收件箱元素并返回文本# print(result)if result=='收件箱':print("本條用例測試通過")real_result="通過"else:print("本條用例執行失敗")real_result = "失敗"time.sleep(5)#driver.quit()#關閉瀏覽器return real_result

2.封裝完成后,調用,并編寫發送郵件的內容和執行發送的函數(如圖):

from email.mime.text import MIMEText #說明發送的郵件內容為純文本 from email.header import Header #用于構建郵件的標題 import smtplib #用于發送電子郵件 from public_class import email_public28 #從public_class 包中引入email_public28這個模塊 def create_email_msg():real_result=email_public28.email_login("https://mail.126.com/")#調用email_public28這個模塊中的函數,輸入實際參數msg = MIMEText('執行用例的結果為:'+ real_result, 'plain', 'utf-8')#構建郵件的內容,類型'plain'純文本 ,字符編碼為utf-8msg['Subject']=Header("登錄用例執行結果:",'utf-8')#構建郵件的標題return msg#返回標題和內容 #發送電子郵件 def send_email_msg():from_email=input('請輸入發件人郵箱名:')pwd=input('請輸入授權碼:') #授權碼而非郵箱密碼to_email=input('請輸入接收人郵箱')stmp=smtplib.SMTP() #SMTP郵件發送協議stmp.connect('smtp.qq.com',25)#建立連接stmp.login(from_email,pwd)#登錄郵箱real_result = create_email_msg() #調用郵件的內容的函數stmp.sendmail(from_email,to_email,real_result.as_string()) #發送郵件stmp.quit() #關閉連接print('郵件發送成功') if __name__ == '__main__':send_email_msg()#調用發送郵件的函數

總結

以上是生活随笔為你收集整理的email邮件中 内嵌iframe_Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。