Selenium+webdriver自動化登陸QQ郵箱並發送郵件


1.關於selenium

 Selenium的主要功能包括:
(1)測試與瀏覽器的兼容性:測試應用程序能否兼容工作在不同瀏覽器和操作系統之上。
(2)測試系統功能:錄制用例自動生成測試腳本,用於回歸功能測試或者系統用例說明。
簡而言之,Selenium 就是一款可以錄制用戶操作, 幫助Web測試人員簡化重復勞動的工具。 

2.selenium安裝

win+r,進入cmd,

 

 

 然后輸入pip install selenium,等一會就安裝好了。

3.webdriver原理

WebDriver是按照Server-Client的模式設計的。

Server就是Remote Server, 可以是任意的瀏覽器。當我們的腳本啟動瀏覽器后,該瀏覽器就是Remote Server,她的職責就是等待Client發送請求並做出響應。

Client端簡單說就是我們寫的測試腳本。腳本中的一些行為比如打開瀏覽器,跳轉到指定的URL等操作就是以http請求的方式發送給被測試的瀏覽器,也就是Remote Server. Remote Server接受請求,執行相應操作,並在Response中返回執行狀態、返回值等信息。

4.下載安裝webdriver

Webdriver下載路徑:

http:// chromedriver. storage. googleapis. com/ index. html,用於驅動打開Chrome;

 

geckodriver下載路徑: https:// github. com/ moz illa/ geckodriver/releeases,用於驅動打開Firefox;

下載后放在python. exe相同目錄下( 我用的是谷歌瀏覽器,所以就下載的chromedriver) :

 

 

 5.測試是否可用

 

出現了下面的結果,說明我們做好了准備工作,可以開始自動化了。

 

 

 

 

 6.要做到自動化,我們就需要模仿鼠標和鍵盤的操作,我這里只用到了一些簡單的操作:

 

 

 7.自動化在操作之前,要找到進行操作的位子,我可以根據網頁源代碼的標簽去找(標簽的屬性最好是唯一的)。

find_element _by_ id(a)  #定位id=‘a’的地方

find_element_by_ name (a)  #定位name=‘a'的地方

find_element_by_ class_name (a)  #定位class=‘a’的地方

find_element_ by_ xpath()

find_element_ by_ css_ selector()

find_element_ by_ tag_ name ()

find_element_ by_ link_text()  #定位文本鏈接的

find_element_by_ partial_link_text() #和上面的一樣,但我們可只截取鏈接的一部分

8.運行程序的全代碼

from selenium import webdriver
import time

first_url = 'http://www.mail.qq.com'
driver = webdriver.Chrome()
driver.get(first_url)
driver.implicitly_wait(3)
driver.maximize_window()

#切換到iframe
time.sleep(3)
driver.switch_to.frame(driver.find_element_by_id('login_frame'))
time.sleep(3)

#點擊頭像進行登錄
driver.find_element_by_id('img_out_1147451366').click()
time.sleep(2)
#進入收件箱
driver.find_element_by_id('folder_1').click()
time.sleep(2)
#點擊寫信
driver.find_element_by_id('composebtn').click()

time.sleep(3)
#切換到iframe
driver.switch_to.frame(driver.find_element_by_id('mainFrame'))


#輸入收件人
driver.find_element_by_xpath("//*[@id='toAreaCtrl']/div[2]/input").send_keys('949709967@qq.com')
time.sleep(2)
#添加附件
driver.find_element_by_name('UploadFile').send_keys(r'C:\Users\11474\Desktop\2019年下半年英語四級筆試准考證(王龍).zip')

#輸入正文,先切入到iframe
driver.switch_to_frame(driver.find_element_by_class_name('qmEditorIfrmEditArea'))
time.sleep(3)
#輸入正文
driver.find_element_by_xpath("ml/body").send_keys('小哥哥,愛你喲')
time.sleep(3)
#切出iframe
driver.switch_to_default_content()

#再切入到‘發送’按鈕的iframe
driver.switch_to.frame(driver.find_element_by_id('mainFrame'))
time.sleep(3)
#郵件發送

driver.find_element_by_name('sendbtn').click()

運行結果要錄屏就不發了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

------------恢復內容結束------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM