1. 程式人生 > 實用技巧 >Python3+Selenium Web自動化測試案例分享⑷——頁面基礎類方法

Python3+Selenium Web自動化測試案例分享⑷——頁面基礎類方法

本章節主要是封裝selenium庫的一些基礎操作方法,如:開啟網頁、定位元素、截圖等,這裡是最基本最底層操作瀏覽器的方法,詳情如下:

一、basePage.py

# _*_ coding:utf-8 _*_
import time,os
from selenium.webdriver.support.ui import WebDriverWait             #匯入顯示等待等待
from selenium.webdriver.support import expected_conditions as EC    #匯入判斷方法
from Public import getPathInfo,log

log_info 
=log.logger #log方法 class BasePage(object): """ 基本類,用於所有頁面的繼承 """ def __init__(self, driver): self.driver = driver def _open(self, url, pagetitle): """ 開啟網頁 :param url: 網址 :param pagetitle: 關鍵字
""" self.driver.maximize_window() #瀏覽器最大化 self.driver.implicitly_wait(30) #顯示等待 self.driver.get(url) #開啟指定網站 assert pagetitle in self.driver.title, log_info.error("頁面原始碼中不存在該關鍵字!") #斷言開啟頁面是否正確 def find_element(self, *loc):
""" 重寫定位元素 """ try: #WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc)) #判斷元素是否存在 WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element(*loc).is_displayed()) #判斷元素是否存在 return self.driver.find_element(*loc) #返回定位元素 except Exception as e: log_info.error('%s頁面未找到%s元素' % (self, loc)) self.get_windows_img() #截圖 def switch_frame(self, loc): """ 切換frame """ return self.driver.switch_to.frame(loc) def script(self, src): """ 定義script方法,用於執行js指令碼 """ self.driver.execute_script(src) def get_windows_img(self): """ 截圖 """ image_path=getPathInfo.join_cwd('Report\\Images\\') #拼接截圖存放目錄 if not os.path.exists(image_path): #判斷目錄是否存在 os.mkdir(image_path) #建立目錄檔案 nowtime=time.strftime("%Y%m%d%H%M%S") #當前時間變數 image_name=image_path +nowtime+ '.png' #截圖路徑 try: self.driver.get_screenshot_as_file(image_name) #截圖 log_info.info("截圖儲存地址:%s" % image_name) print('screenshot:', nowtime+'.png') #列印screenshot關鍵字,報告中顯示截圖 except NameError as e: log_info.error("截圖儲存失敗! %s" % e) #self.get_windows_img()