1. 程式人生 > >Python+Selenium中級篇之3-二次封裝Selenium中幾個方法

Python+Selenium中級篇之3-二次封裝Selenium中幾個方法

       本文來介紹,如何把常用的幾個webdriver的方法封裝到自己寫的一個類中去,這個封裝過程叫二次封裝Selenium方法。我們把開啟站點,瀏覽器前進和後退,關閉和退出瀏覽器這這個方法封裝到一個新寫的類中去。

我們按照如下層次結構在PyCharm中新建兩個包和兩個.py檔案:


      上圖,baidu_search.py是我們編寫測試指令碼的python檔案,具體測試程式碼寫在這個檔案。包test1下的basepage.py檔案是這次我們介紹的二次封裝selenium方法而新建的。這裡提一下,python中預設規則,包名和檔名都是小寫,類名稱單詞首字母大寫,函式名稱小寫,多個字母下劃線隔開。我們儘量遵守下這個不成文的約定。

來看看basepage.py的內容:

# coding=utf-8


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()
上面的''''''是文件註釋,一般在類的開始和函式的開始,用兩個''''''括起來,簡單描述下這個類或者函式的功能。

接下來看看,我們指令碼檔案中如何去呼叫我們自己封裝過的方法。

baidu_search.py的內容如下:

# coding=utf-8
import time
from selenium import webdriver
from test1.basepage import BasePage


class BaiduSearch(object):

    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(10)

    basepage = BasePage(driver)

    def open_baidu(self):
        self.basepage.open_url("https://www.baidu.com")
        time.sleep(1)

    def test_search(self):
        self.driver.find_element_by_id('kw').send_keys("Selenium")
        time.sleep(1)
        self.basepage.back()
        self.basepage.forward()
        self.basepage.quit_browser()

baidu = BaiduSearch()
baidu.open_baidu()
baidu.test_search()
      上面self.basepage的幾行程式碼就是呼叫我們自己封裝的方法去執行相關webdriver操作。這個只是一個簡單的封裝介紹,等後面,我們介紹了字串切割,我們會再次介紹二次封裝Selenium方法,例如將會把八大find_element方法封裝到一個方法裡去。

相關推薦

Python+Selenium中級3-封裝Selenium方法

       本文來介紹,如何把常用的幾個webdriver的方法封裝到自己寫的一個類中去,這個封裝過程叫二次封裝Selenium方法。我們把開啟站點,瀏覽器前進和後退,關閉和退出瀏覽器這這個方法封裝

CATIA開發過程問題

1、CATIA不是單例項程式,可以同時執行多個。2、如果開啟多個CATIA程式,自動化連線的是第一個。3、如果自動化已經連線了一個CATIA程式,把這個CATIA程式關閉後,即使此時還有執行的CATIA程式,也會報錯“RPC 伺服器不可用。 (異常來自 HRESULT:0x8

Python+Selenium基礎3-開啟和關閉IE/Chrome瀏覽器

前面文章介紹了,如何呼叫webdriver介面方法來開啟和關閉Firefox瀏覽器,本文介紹如何開啟IE和Chrome瀏覽器。web專案,需要做相容性測試,最重要的是瀏覽器相容性測試。如果只考慮windows平臺,相信應該很多公司必須要測試IE、Firefox、Chrome這三大瀏覽器。所以webui 自動化

Python+Selenium練習3-利用tag name定位元素

前一篇文章介紹瞭如何通過元素的id值來定位web元素,本文介紹如何通過tag name來定位元素。個人認為,通過tag name來定位還是有很大缺陷,定位不夠精確。主要是tag name有很多重複的,造成了選擇tag name來定位頁面元素不準確,所以使用這個方法定位web元素的機會很少。  &n

Python+Selenium中級1-Python IDE工具-PyCharm的安裝和簡單使用

       從本文開始陸續介紹一些中級的技能,本篇文章介紹,在Python開發過程中,比較流行,很優秀的一款IDE工具-PyCharm,這裡關於它的介紹就一句話,它就相當於Java開發中的Eclip

六.python+selenium元素定位tag_name定位

tag_name是使用標籤進行定位 這裡用自己寫了一個HTML來進行演示,請點選下載HTML中的lizi.html  密碼:ww8k 首先定位到lizi中的選項下拉框標籤,就是點選一下Volvo定位該元素: 該元素是屬於select+option構成,那麼先根據tag_

Python+Selenium中級10-Python的繼承的使用

      本文開始介紹一個面向物件設計領域裡,很常見的一種思想,繼承。繼承有很多好處,常聽到的一句話就是,子類能夠直接使用父類的方法,這樣就可以減少子類程式碼量。其實,在自動化測試框架設計過程中,是

Python+Selenium中級9-把截圖類方法封裝到前面的BasePage.py

      本文介紹把截圖類方法封裝到BasePage.py檔案裡,這個檔案是在前面Selenium方法二次封裝文章裡建立的,具體程式碼請到前面這篇裡找。我們截圖類寫死了把截圖圖片儲存到根目錄下的Sc

Python+Selenium練習3-瀏覽器滾動條操作

ps:scroll函式用法--scrollHeight 獲取物件的滾動高度。--scrollLeft 設定或獲取位於物件左邊界和視窗中目前可見內容的最左端之間的距離。--scrollTop 設定或獲取位於物件最頂端和視窗中可見內容的最頂端之間的距離。--scrollWidth 獲取物件的滾動寬度方法二:fro

Python+Selenium中級8-Python自定義封裝一個簡單的Log類

       本文介紹如何寫一個Python日誌類,用來輸出不同級別的日誌資訊到本地資料夾下的日誌檔案裡。為什麼需要日誌輸出呢,我們需要記錄我們測試指令碼到底做了什麼事情,最好的辦法是寫事件監聽。這個

android開發 OkHttp封裝(android 訪問網路)

 這個是本人在使用的一個網路請求,根據自己的需求進行修改的,對於自己完全夠用。大家有需要可以根據自己的專案修改成自己需要的。如果有什麼問題,還希望告知。 使用時繼承該類即可 import android.os.Handler; import android.os.Message;

java實現維碼生成的方法

1: 使用SwetakeQRCode在Java專案中生成二維碼http://swetake.com/qr/ 下載地址 或著http://sourceforge.jp/projects/qrcode/do

🔥《手把手教你》系列基礎3-python+ selenium-驅動瀏覽器和元素定位大法(詳細)

1. 簡介 上一篇中,只是簡單地一帶而過的說了一些驅動瀏覽器,這一篇繼續說說驅動瀏覽器,然後再說一說元素定位的方法。 完成環境的安裝並測試之後,我們對Selenium有了一定的瞭解了,接下來我們繼續驅動瀏覽器做一些基本操作: 視窗尺寸設定、網頁截圖、重新整理、前進和後退 2. 視窗尺寸設定 在測試過程中,我們

🔥《手把手教你》系列基礎3-python+ selenium自動化測試-驅動瀏覽器和元素定位大法(詳細)

1. 簡介 上一篇中,只是簡單地一帶而過的說了一些驅動瀏覽器,這一篇繼續說說驅動瀏覽器,然後再說一說元素定位的方法。 完成環境的安裝並測試之後,我們對Selenium有了一定的瞭解了,接下來我們繼續驅動瀏覽器做一些基本操作: 視窗尺寸設定、網頁截圖、重新整理、前進和後退 2. 視窗尺寸設定 在測試過程中,我們

《手把手教你》系列練習3-python+ selenium自動化測試(詳細教程)

1.  簡介   前面介紹了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介紹webdriver支援的最後一個方法:by_css。css和XPath類似,也需要掌握一些語法,才能寫出正確的,完

《手把手教你》系列進階3-python+ selenium自動化測試 - python種騷操作你都知道嗎?(詳細教程)

1. 簡介    這篇文章主要是給小夥伴或者童鞋們介紹和分享 python幾種騷操:讀取配置檔案、獲取根目錄的相對路徑、獲取系統時間和格式化時間顯示、字串切割等等操作。為後邊的自動化框架打下一個結實的基礎。 2. Python讀取配置檔案內容   本文來介紹下Python中如何讀取配置檔案

Selenium封裝-Python版本

chain smi acc idt 內容 targeting iss handle posit 1 from selenium import webdriver 2 from selenium.webdriver.support.wait import WebDr

3、對selenium常用方法進行封裝

在basepage.java中對selenium常用方法進行封裝,後續頁面元素封裝都繼承該類。 重點見紅框,建構函式需要傳入一個driver,這是為了保證寫指令碼時所使用的是同一個driver 程式碼如下: package framework;import org.openqa.sel

Python+Selenium練習27-多視窗之間切換

本文來介紹如何處理driver在多視窗之間切換,想一下這樣的場景,在頁面A點選一個連線,會觸發在新Tab或者新視窗開啟頁面B,由於之前的driver例項物件在頁面A,但是你接下來的指令碼是操作頁面B的元素,這樣就造成了找不到元素的報錯。本來介紹selenium中switch_to.window(

python+selenium十:selenium封裝 python+selenium十:基於原生selenium封裝

python+selenium十:基於原生selenium的二次封裝   from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.