1. 程式人生 > 實用技巧 >Python+Selenium中級篇之2-Python中類/函式/模組的簡單介紹和方法呼叫

Python+Selenium中級篇之2-Python中類/函式/模組的簡單介紹和方法呼叫

從本文開始陸續介紹一些中級的技能前篇文章介紹了PyCharm的基本使用,接下來我們的指令碼程式碼都在這個PyCharm這個編輯器裡寫。好處有很多,專案檔案結構層次清晰,寫程式碼的時候會自動化提示和補全。這裡,我們在昨天建立的專案下,新建一個包,然後在包下面新建一個demo.py檔案。抄寫以下程式碼到你的環境裡,嘗試執行下,看看有沒有問題。

關於Python中類和函式及方法的呼叫,我們寫在這個demo.py檔案,具體程式碼如下:

# coding=utf-8

class ClassA(object):

string1 = "這是一個字串。"

def instancefunc(self):
print ('這是一個例項方法。') print (self) @classmethod def classfunc(cls): print ('這是一個類方法。') print (cls) @staticmethod def staticfun(): print ('這是一個靜態方法。') test = ClassA() # 初始化一個ClasssA的物件,test是類ClassA的例項物件 test.instancefunc() # 物件呼叫例項方法 test.staticfun() # 物件呼叫靜態方法 test.classfunc() # 物件呼叫類方法 print test.string1 #
物件呼叫類變數 ClassA.instancefunc(test) # 類呼叫例項方法,需要帶引數,這裡的test是一個物件引數 ClassA.instancefunc(ClassA) # 類呼叫例項方法,需要帶引數,這裡的ClassA是一個類引數 ClassA.staticfun() # 類呼叫靜態方法 ClassA.classfunc() # 類呼叫類方法


備註:
先執行下程式碼是否會報錯,然後嘗試自己去理解下。主要有以下幾點內容 (海量免費學習資料,軟體測試交流:1140267353群,還會有同行一起技術交流)

1. 類的定義,class開頭的就表示這是一個類,小括號裡面的,表示這個類的父類,涉及到繼承,預設object是所有類的父類。python中定義類,小括號內主要有三種:1. 具體一個父類,2. object 3. 空白

2. 函式或方法的定義, def開頭就表示定義一個函式,方法包括,例項方法,類方法,靜態方法,注意看類方法和靜態方法定義的時候上面有一個@標記。

3. 物件呼叫方法和類呼叫方法的使用。

這篇講的東西,確實比較難理解。如果學過java的人,可能會好理解類和物件,以及面向物件的概念。Python同時支援面向過程變成和麵向物件程式設計,所有python中也有類和物件等概念。一般來說,概念的東西比較繞,如果你Python基礎沒有看到這部分,那邊請回去《看笨方法學python》中關於這塊的介紹。如果有看過了,還是不理解,我只能告訴你,繼續學下去,你現在哪怕死記住這些概念和他們的基本使用。等到後面,框架設計部分,你會慢慢體會到這些基本概念的實際用法,你跟著寫了程式碼後,會有助於你自己的理解和提高。

最後,來說下python中的模組,在python中,你新建一個demo.py檔案,那麼一個.py檔案可以說是一個模組,一個模組中,可以定義多個class,模組中也可以直接定義函式。和java一樣,訪問不同包下的類和方法之前,需要匯入相關路徑下的包。例如from selenium import webdriver 這個匯入語句,我們知道webdriver這個介面是在selenium的模組下。

本篇文章的學習目的,會用函式或者類來編寫我們之前寫過的指令碼。

以下用百度搜索舉例,模仿上面用類呼叫例項的方法來寫這個指令碼,可能看起來比較囉嗦,但是程式碼多了,你就會體會到類的作用,注意這裡self指的是當前BaiduSearch這個類本身:

# coding=utf-8
import time
from selenium import webdriver


class BaiduSearch(object):
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)

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

def test_search(self):
self.driver.find_element_by_id('kw').send_keys("selenium")
time.sleep(1)
print self.driver.title
try:
assert 'selenium' in self.driver.title
print ('Test pass.')

except Exception as e:
print ('Test fail.')
self.driver.quit()

baidu = BaiduSearch()
baidu.open_baidu()
baidu.test_search()

上一篇    Python+Selenium中級篇之1-設計自動化測試框架的前提技能介紹

下一篇    

以上僅供參考和借鑑,希望對你有所幫助!

點個關注不迷路!!!

小楓這幾天整理的測試資料不知道大家會不會,哪方面需要改善,希望大家多多留言給點意見。