1. 程式人生 > >【基於Python的Selenium2自動化測試】05 - 模擬126郵箱的發郵件功能

【基於Python的Selenium2自動化測試】05 - 模擬126郵箱的發郵件功能

直接上程式碼,如下:

# coding=utf-8
from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("http://www.126.com")

time.sleep(1)  # 加一個延時操作,才能定位到下面的iframe
iframe1 = driver.find_element_by_xpath("//div[@id='loginDiv']/iframe")
driver.switch_to.frame(iframe1)
#執行郵箱登入操作
driver.find_element_by_name(
"email").clear() driver.find_element_by_name("email").send_keys("emailName") driver.find_element_by_name("password").clear() driver.find_element_by_name("password").send_keys("passWord") driver.find_element_by_id("dologin").click() driver.switch_to.default_content() # 這裡一定要記得退回到之前的主文件頁面 time.sleep(
3) # ====== 定位到寫信tab(下面兩種方法都可以定位到) driver.find_element_by_xpath("//span[contains(text(),'寫 信')]").click() #driver.find_element_by_xpath("//div[@id='dvNavTop']/ul/li[2]/span[2]").click() time.sleep(4) # ====== 填寫收件人郵箱地址 driver.find_element_by_class_name('nui-editableAddr-ipt').send_keys(r'[email protected]
'
) #字串加r,防止轉義 # ====== 填寫郵件主題(通過and連線多個屬性來唯一標識某個元素) #driver.find_element_by_xpath("//input[@class='nui-ipt-input']").send_keys(u"自動化測試") #定位不到 #driver.find_element_by_xpath("//input[@class='nui-ipt-input' and @type='text']").send_keys(u"自動化測試") #定位不到 driver.find_element_by_xpath("//input[@class='nui-ipt-input' and @maxlength='256']").send_keys(u'自動化測試') time.sleep(8) # ====== 定位到郵件正文 #通過switch_to.frame()將當前定位切換到frame/iframe表單的內嵌頁面中 #注意:若iframe有id或是name屬性,可以直接切換 driver.switch_to.frame(driver.find_element_by_class_name("APP-editor-iframe")) #在內嵌頁面中定位郵件內容位置 emailcontext = driver.find_element_by_class_name('nui-scroll') # ====== 填寫郵件內容 emailcontext.send_keys("這是第一封自動化測試郵件") time.sleep(10) # ====== 跳出巢狀頁面 driver.switch_to.default_content() time.sleep(5) # ====== 定位到傳送tab sendmail = driver.find_element_by_xpath("//span[contains(text(),'傳送') and @class='nui-btn-text']") sendmail.click() #校驗郵件是否傳送成功 try: assert '傳送成功' in driver.page_source except AssertionError: print("很遺憾,郵件傳送失敗!") else: print("恭喜你:郵件傳送成功!") time.sleep(10) driver.quit()

最後執行結果如下:
在這裡插入圖片描述

開啟接受郵箱,看到如下收件資訊:
在這裡插入圖片描述