selenium 自動化測試。

2022-08-23 14:00:10 字數 4036 閱讀 6771

第一步安裝 谷歌瀏覽器。

第三步編寫測試測試指令碼

第四步 安裝selemium

#

-*- coding: utf-8 -*-

#引入webdriver和unittest所需要的包

from selenium import

webdriver

from selenium.webdriver.common.by import

byfrom selenium.webdriver.common.keys import

keys

from selenium.webdriver.support.ui import

select

from selenium.common.exceptions import

nosuchelementexception

from selenium.common.exceptions import

noalertpresentexception

import

unittest, time, re

#引入htmltestrunner包

import

htmltestrunner

class

email(unittest.testcase):

#初始化設定

defsetup(self):

self.driver =webdriver.chrome()

self.driver.implicitly_wait(30)

self.base_url = "

"self.verificationerrors =

self.accept_next_alert =true

self.username = "

1754894793

"self.password = "

xusongwei1208

"self.sender = "

16558744

"self.title = u"

陳老師"

self.content = u"

祝你快樂,年輕。"#

登入def

login(self):

driver =self.driver

driver.get(self.base_url)

#錄製工具對frame跳轉**不靈光

#可以在乙個智慧型範圍內等待

driver.implicitly_wait(30)

driver.switch_to.frame(

"login_frame

") #

切換到有登入賬號輸入框的 frame

driver.find_element_by_id("u"

).click()

driver.find_element_by_id("u

").clear()

driver.find_element_by_id("u

").send_keys(self.username)

driver.find_element_by_id("p

").click()

driver.find_element_by_id("p

").clear()

driver.find_element_by_id("p

").send_keys(self.password)

driver.find_element_by_id(

"login_button

").click()

#driver中當前frame返回頂層

driver.switch_to.default_content()

driver.switch_to.default_content()

driver.find_element_by_id(

"composebtn

").click()

driver.switch_to.frame(

"mainframe")

#輸入接收者的郵箱和郵件標題

#絕對路徑定位元素的位置

driver.find_element_by_xpath("

//div[@id='toareactrl']/div[2]/input

").send_keys(self.sender)

driver.find_element_by_id(

"subject

").send_keys(self.title)

#進入輸入內容的iframe

frame = driver.find_element_by_xpath("

//iframe[@class='qmeditorifrmeditarea']")

driver.switch_to.frame(frame)

#輸入郵件內容:

#問題出在 他把文字放在div標籤中間了

#解決:你往父級找一找 有沒有div元素 有乙個 contenteditable="true"的屬性,說明這個文字框採用的是全域性變數,你只需要給這個div send_keys()就ok了

driver.find_element_by_xpath("

//body

").send_keys(self.content)

#從底層的frame返回上一層的frame需要先回到頂層,再往下走找到它

driver.switch_to.default_content()

driver.switch_to.frame(

"mainframe")

driver.find_element_by_xpath(u

"(.//*[normalize-space(text()) and normalize-space(.)='對郵件加密'])[1]/following::a[1]

").click()

#進入frame操作結束後就返回頂層

driver.switch_to.default_content()

#def exit(self):

#driver = self.driver

driver.find_element_by_link_text(u"退出"

).click()

driver.implicitly_wait(10)

driver.find_element_by_link_text(u

"重新登入

").click()

#def run(self):

#self.login()

#self.sendmail()

#self.exit()

defteardown(self):

#退出驅動 關閉所有視窗。

self.driver.quit()

self.assertequal(, self.verificationerrors)

if__name__ == "

__main__":

#定義乙個測試容器

test =unittest.testsuite()

#將測試用例,加入到測試容器中

test.addtest(email("

login"))

#定義個報告存放的路徑,支援相對路徑

file_path = "

c:\\users\\小號\\desktop\\result.html

"file_result= open(file_path, 'wb'

)

#定義測試報告

runner = htmltestrunner.htmltestrunner(stream = file_result, title = u"

qq郵箱登入發資訊,退出

", description = u"

用例執**況")

#執行測試用例

Python自動化測試 Selenium

第乙個selenium就。先show from selenium import webdriver driver webdriver.firefox driver.get assert oxcoder decode utf 8 in driver.title print driver.title d...

自動化測試selenium(四)

三 用例的執行順序 四 unittest斷言 unittest 各元件的關係為 test fixture 初始化和清理測試環境,比如建立臨時的資料庫,檔案和目錄等,其中 setup 和 setdown 是最常用的方法 test case 單元測試用例,testcase 是編寫單元測試用例最常用的類 ...

Selenium 自動化測試模型

自動化測試模型可以看作自動化測試框架與工具設計的思想。線性指令碼中每個指令碼都相互獨立,且不會產生其他依賴與呼叫,其實就是簡單模擬使用者某個操作流程產生的指令碼。from selenium import webdriver from time import sleep driver webdrive...