第一步安裝 谷歌瀏覽器。
第三步編寫測試測試指令碼
第四步 安裝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...