Python+Selenium中級篇之9-把截圖類方法封裝到前面的BasePage.py
本文介紹把截圖類方法封裝到BasePage.py檔案裡,這個檔案是在前面Selenium方法二次封裝文章裡建立的,具體程式碼請到前面這篇裡找。我們截圖類寫死了把截圖圖片儲存到根目錄下的Screenshots資料夾裡,圖片名稱是當前系統時間,圖片字尾名是png。
新的BasePage.py內容如下:
主要看最後一個截圖類方法的封裝。# coding=utf-8 import os import time from test.logger import Logger mylog = Logger(logger='BasePage').getlog() class BasePage(object): """ 主要是把常用的幾個Selenium方法封裝到BasePage這個類,我們這裡演示以下幾個方法 back() forward() get() quit() """ def __init__(self, driver): """ 寫一個建構函式,有一個引數driver :param driver: """ self.driver = driver def back(self): """ 瀏覽器後退按鈕 :param none: """ self.driver.back() def forward(self): """ 瀏覽器前進按鈕 :param none: """ self.driver.forward() def open_url(self, url): """ 開啟url站點 :param url: """ self.driver.get(url) def quit_browser(self): """ 關閉並停止瀏覽器服務 :param none: """ self.driver.quit() def take_screenshot(self): """ 截圖並儲存在根目錄下的Screenshots資料夾下 :param none: """ file_path = os.path.dirname(os.getcwd()) + '/Screenshots/' rq = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) screen_name = file_path + rq + '.png' try : self.driver.get_screenshot_as_file(screen_name) mylog.info("開始截圖並儲存") except Exception as e: mylog.error("出現異常",format(e))
測試類相關程式碼如下:
執行後,可以在根目錄下Screenshots資料夾裡找到百度首頁截圖。# coding=utf-8 import time from selenium import webdriver from test.basepage import BasePage class TestScreenshot(object): driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(10) basepage = BasePage(driver) def test_take_screen(self): self.basepage.open_url("https://www.baidu.com") time.sleep(1) self.basepage.take_screenshot() self.basepage.quit_browser() test = TestScreenshot() test.test_take_screen()
本文就介紹了截圖類方法新增到BasePage裡,介紹瞭如何儲存到根目錄下的Screenshots資料夾。
相關推薦
Python+Selenium中級篇之9-把截圖類方法封裝到前面的BasePage.py
本文介紹把截圖類方法封裝到BasePage.py檔案裡,這個檔案是在前面Selenium方法二次封裝文章裡建立的,具體程式碼請到前面這篇裡找。我們截圖類寫死了把截圖圖片儲存到根目錄下的Sc
Python+Selenium練習篇之9-清除文字方法
在前面的基礎篇的最後一篇(點這裡),我們用到了輸入字元和點選按鈕這樣的操作。用send_keys()來輸入字串到文字輸入框這樣的頁面元素,用click()來點選頁面上支援點選的元素。有時
Python+Selenium中級篇之1-Python IDE工具-PyCharm的安裝和簡單使用
從本文開始陸續介紹一些中級的技能,本篇文章介紹,在Python開發過程中,比較流行,很優秀的一款IDE工具-PyCharm,這裡關於它的介紹就一句話,它就相當於Java開發中的Eclip
Python+Selenium中級篇之10-Python中的繼承的使用
本文開始介紹一個面向物件設計領域裡,很常見的一種思想,繼承。繼承有很多好處,常聽到的一句話就是,子類能夠直接使用父類的方法,這樣就可以減少子類程式碼量。其實,在自動化測試框架設計過程中,是
Python+Selenium中級篇之3-二次封裝Selenium中幾個方法
本文來介紹,如何把常用的幾個webdriver的方法封裝到自己寫的一個類中去,這個封裝過程叫二次封裝Selenium方法。我們把開啟站點,瀏覽器前進和後退,關閉和退出瀏覽器這這個方法封裝
Python+Selenium中級篇之8-Python自定義封裝一個簡單的Log類
本文介紹如何寫一個Python日誌類,用來輸出不同級別的日誌資訊到本地資料夾下的日誌檔案裡。為什麼需要日誌輸出呢,我們需要記錄我們測試指令碼到底做了什麼事情,最好的辦法是寫事件監聽。這個
Python+Selenium練習篇之27-多視窗之間切換
本文來介紹如何處理driver在多視窗之間切換,想一下這樣的場景,在頁面A點選一個連線,會觸發在新Tab或者新視窗開啟頁面B,由於之前的driver例項物件在頁面A,但是你接下來的指令碼是操作頁面B的元素,這樣就造成了找不到元素的報錯。本來介紹selenium中switch_to.window(
Python+Selenium基礎篇之5-第一個完整的自動化測試指令碼
前面文章,我們介紹瞭如何採用XPath表示式去定位網頁元素,在掌握瞭如何抓取或者如何書寫精確的XPath表示式後,我們可以開始寫自己的第一個真正意義上的webui 自動化測試指令碼,就相當於,你在學習Python,如何在控制檯列印Hello,Python! 一樣。 &nb
Python+Selenium基礎篇之4-XPath的使用
開始寫自動化指令碼之前,我們先學習幾個概念,在完全掌握了這幾個概念之後,有助於我們快速上手,如何去編寫自動化測試指令碼。 元素,在這個教程系列,我們說的元素之網頁元素(web element)。在網頁上面的文字輸入框,按鈕,多選,單
Python+Selenium基礎篇之3-開啟和關閉IE/Chrome瀏覽器
前面文章介紹了,如何呼叫webdriver介面方法來開啟和關閉Firefox瀏覽器,本文介紹如何開啟IE和Chrome瀏覽器。web專案,需要做相容性測試,最重要的是瀏覽器相容性測試。如果只考慮windows平臺,相信應該很多公司必須要測試IE、Firefox、Chrome這三大瀏覽器。所以webui 自動化
Python+Selenium基礎篇之2-開啟和關閉火狐瀏覽器
本節介紹如何初始化一個webdriver例項物件driver,然後開啟和關閉firefox瀏覽器。要用selenium開啟fiefox瀏覽器。首先需要去下載一個driver外掛geckodriver.exe, 下載地址https://github.com/mozilla/geckodriver/release
Python+Selenium練習篇之4-利用link text定位元素
本文介紹如何通過link text 來定位頁面元素,我們開啟網頁,一些可以點選的連結跳轉上面的文字,就是link text,用百度首頁舉例來看: 在上面圖中,這一排上面的文字都是link text,例如我們要通過“新聞”這個文字欄位來定義這個跳轉連結元素。 指令碼如下:
Python+Selenium練習篇之2-利用ID定位元素
在前面一篇文章,我們介紹瞭如何摘取頁面欄位,通過正則進行匹配符合要求的欄位。如果感覺有點困難,不能立馬理解,沒有關係。把字串摘取放到第一篇,是因為自動化測試指令碼,經常要利用字串操作,字串切割,查詢,匹配等手段,得到新的字串或字串陣列,然後根據新得到的字串進行判斷用例是否通過。 &n
Python+Selenium練習篇之1-摘取網頁上全部郵箱
前面已經介紹了Python+Selenium基礎篇,通過前面幾篇文章的介紹和練習,Selenium+Python的webUI自動化測試算是入門了。接下來,我計劃寫第二個系列:練習篇,通過一些練習,瞭解和掌握一些Selenium常用的介面或者方法。
Python+Selenium練習篇之5-利用partial link text定位元素
本文介紹如何通過partial link text來定位頁面元素。看到這個,有點和前一篇文字link text有點類似。字面意思,確實和link text相類似,partial link text就是選擇這個元素的link text中一部分欄位。
Python+Selenium練習篇之6-利用class name定位元素
有時候,我們在用firepath(不會的請點這裡)檢視元素的XPath資訊,發現沒有可以用來定位的id資訊,這個時候我們就需要考慮用其他的可用的來定位元素。本文介紹如何通過元素節點中class name的值來定位頁面元素。還是以百度首頁,搜尋輸入框定位舉例: XPath截圖 相關指令碼程式
Python+Selenium練習篇之3-利用tag name定位元素
前一篇文章介紹瞭如何通過元素的id值來定位web元素,本文介紹如何通過tag name來定位元素。個人認為,通過tag name來定位還是有很大缺陷,定位不夠精確。主要是tag name有很多重複的,造成了選擇tag name來定位頁面元素不準確,所以使用這個方法定位web元素的機會很少。 &n
Python+Selenium練習篇之28-處理iframe切換
本文介紹如何利用Selenium中方法,在不同iframe中切換。 問題:有時候我們發現元素定位沒問題,在測試回放的過程,發現就是找不到元素報錯。 由於沒有找到合適的iframe網站,這裡不好用程式碼
Python+Selenium練習篇之11-瀏覽器上前進和後退操作
本文來介紹上如何,利用webdriver中的方法來演示瀏覽器中位址列旁邊的前進和後退功能。 相關指令碼程式碼如下: # coding=utf-8 import time from selenium i
Python+Selenium練習篇之16-點選單選按鈕-Radio Button
本文介紹如何利用selenium中的方法去操作單選按鈕(Radio Button)。 利用百度新聞頁面兩個單選按鈕舉例 預設是選擇新聞全文,我試試在兩者之前來回點選。 實際上,勾選一個單選按鈕,也