1. 程式人生 > >Selenium2 Python 自動化測試實戰學習筆記

Selenium2 Python 自動化測試實戰學習筆記

第一章  自動化測試基礎

1.1 軟體測試分類

軟體測試 V 模型:

需求分析---設計---編碼

驗收測試--------系統測試---整合測試—單元測試

單元測試:是對程式中的單個子程式或具有獨立功能的程式碼段進行測試的過程

整合測試:檢查模組之間的介面是否正確

系統測試:針對整個產品進行系統測試,驗證系統是否滿足了需求規格的定義,以及軟體系統的正確性和效能等是否滿足其規約所指定的需求

驗收測試:確保軟體準備就緒,向軟體購買者展示該軟體系統需求滿足其使用者的需求

黑盒測試:把軟體看做一個黑盒子,我們不去關心盒子裡面的結構,只關心軟體的輸入資料和輸出結果。主要針對軟體介面和軟體功能進行測試

白盒測試:研究原始碼和程式的執行結果。它是按照程式內部的結構測試程式,通過測試來檢驗產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否都能按預定要求正確工作

灰盒測試:既關注輸出對於輸入的正確性,同時也關注不像白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部執行的狀態。

冒煙測試:是指在對一個新版本進行系統大規模的測試之前,先驗證一下軟體的基本功能是否實現,是否具備可測性

迴歸測試:修改了舊程式碼後,重新進行測試以確認修改後沒有引入新的錯誤或導致其他程式碼產生錯誤

隨機測試:是指測試中的所有輸入資料都是隨機生成的,其目的是模擬使用者的真實操作,並發現一些邊緣性的錯誤。

1.2 分層的自動化測試

                            UI測試

                                            整合/介面測試

單元測試

單元測試:單元測試框架,java的Junint、testNG,C#的Nuit,Python的unittest、pytest等

在自動化測試中最怕的是變化,因為變化的直接結果就是導致測試用例的執行失敗,那麼就需要對自動化指令碼進行維護;如何控制失敗,降低維護成本對自化的成敗至關重要。

UI 層的自動化測試工具非常多,比較主流的是QTP,Robot Framework、watir、Selenium 等。

1.3 什麼樣的專案適合自動化測試

1.4 自動化測試及工具簡述

自動化測試的概念有廣義與狹義之分;廣義上來講所有藉助工具來進行軟體測試都可以稱之為自動化測試;從狹義來講,主要指基於UI層的自動化測試;除此之外還有基程式碼編寫階段的單元自動化測試,基本整合測試階段的介面自動化測試。

1.5 Selenium 工具介紹

     Selenium IDE是嵌入到Firefox瀏覽器中的一個外掛,實現簡單的瀏覽器操作的錄製和回放功能。主要應用是快速建立bug重現指令碼,在測試人員的測試過程中,發現了Bug之後可以通過IDE將重現的步驟錄製下來,以幫助開發人員更容易的重現BUG.

Selenium Grid:是一種自動化的測試輔助工具,Grid通過利用現有的計算機基礎設施,能加快web-app的功能測試。利用Grid,可以很方便地同時在多臺機器上和異構環境中並行執行多個測試例項。其特點是:

1.      並行執行

2.      通過一個主機統一控制用例在不同環境、不同瀏覽器下執行

3.      靈活新增變動測試機

  Selenium RC:支援多種不同的語言編寫自動化測試指令碼,通過Selenium RC的伺服器作為代理伺服器去訪問應用從而達到測試的目的。Selenium RC 使用分 Client Libraries 和 Selenium Server,Client Libraries 庫主要用於編寫測試指令碼,用來控制Selenium Server的庫。Selenium Server 負責控制瀏覽器行為,總的來說,Selenium Server 主要包括3 個部分:Launcher、Http Proxy、Core。其中Selenium Core 是被Selenium Server 嵌入到瀏覽器頁面中的。其實Selenium Core

就是一堆JS 函式的集合,就是通過這些JS 函式,我們才可以實現用程式對瀏覽器進行操作。Launcher 用於啟動瀏覽器,把selnium Core 載入到瀏覽器頁面當中,並把瀏覽器的代理設定為SeleniumServer 的Http Proxy。

1.6 前端工具

   FireBug:集HTML檢視和編輯、Javascript 控制檯、網路狀況監視器、cookie 檢視於一體,是開發JavaScript、CSS、HTML和Ajax 的得力助手。

第二章          測試環境搭建

2.1 window 下環境搭建

2.1.1 安裝 Python

2.1.2 安裝steuptools 與pip

setuptools 與pip 下載地址:

https://pypi.Python.org/pypi/setuptools

  通過解壓工具進行解壓將得到兩個資料夾,在Windows 命令提示符進入到檔案解壓目錄,通過Python執行安裝檔案setup.py 進行安裝。安裝setuptools:

C:\package\setuptools-7.0>Pythonsetup.py install

安裝pip 的方法與setuptools 相同,切換到pip 解壓目錄,執行setup.py 檔案:

C:\package\pip-1.5.6>Pythonsetup.py install

2.1.4ActivePython

   訪問ActivePython 下載地址:

http://www.activestate.com/activePython/downloads

2.2 編寫第一個指令碼

baidu.py

#codiong=uft-8
from selenium import webdriver
 
driver=webdriver.Chrom()
driver.get(“http://www.baidu.com”)
 
driver.find_element_by_id(“kw”).send_keys(“Selenium2”)
driver.find_element_by_id(“su”).Click()
 
driver.quit()

第三章           Python基礎

3.1  輸出和輸入

Python 提供print方法來列印資訊:print “hello”

呼叫print方法,使用者雙引號(“ ”)把需要列印的資訊引起來就被輸出了。

>>>name=”zhangsan”

>>>print “hello %s,Nice tomeet you!” %name

%s(string)只能列印字串,如果想列印數字,那麼就要使用%d(data)

>>>age=27

>>>print “You are %d !” %age

如果不知道自己要列印的是什麼型別的資料,那麼可以用%r來表示

>>> n=100

>>>print “Youprint is %r .” %n

>>> n=”abc”

>>>print “Youprint is %r .” %n

Python提供input輸入:

</pre><pre name="code" class="python">#coding=utf-8
n=input(“Enter any content:”)
print “Your input is %r ” %n

但是input()方法比較矯情,要求使用者輸入的資料型別一定正確,比如字串一定要加引號,如果不加會報錯。

我們可以使用raw_input()方法,使用者輸入什麼就是什麼。

在Python當中,不區分單引號(‘ ’)與雙引號(“ ”),單雙引號都可以表示一個字串

>>>print “hello”

>>>print ‘world’

可以巢狀使用,但不能交叉使用。

Python的單註釋用井號(#)表示。

多行註釋用三對引號表示,不分單、雙引號。

3.2  分支與迴圈

   分支一般就用if..else..語句,迴圈一般就用for語句。Xx.py

Results=72
If  Results>=90:
       Print u’優秀’
Elif  Results>=70:
                Print u’良好’
Elif  Results>=60:
       Print u’及格’
Else:
       Print u’不及格’

For 語句:迴圈一個字串的每一個字元。

Strings=“hello world”
For I in strings:
     Print I

迴圈數字,迴圈數字要藉助range()函式。

For I in range(1,10):
       Print I

range(start,end,scan):start表示開始的位置,end表示結束的位置,scan表示每一次迴圈的步長。

3.3  陣列與字典

   陣列用中括號[]表示,裡面的每一個元素用逗號(,)隔開。陣列下標從0開始的。

>>>shuzu=[1,2,3,’a’,5]

>>>print shuzu

>>>print shuzu[0]

>>>printshuzu[4]

   字典以花括號{}表示,裡面的元素是成對出現的,一個key對應一個value;一對元素用冒號(:)分割;不同元素用逗號(,)分開。

>>>zidian={“username”:”password”,’man’:’woman’,1:2}

>>>zidian.keys()

>>>zidian.values()

>>>zidian.items()

   字典裡的每一對元素準確的來說是鍵值對,一個鍵(key)對應一個值(value)。Keys()函式可以輸出所有鍵的值;values()函式可以輸出所有值的值;items()函式輸出一對鍵值對的值。

3.4  函式與類、方法

3.4.1函式

在python當中通過def關鍵字來定義函式,下面來定義一個函式:

>>>def add(a,b):

                     printa+b

>>>add(3,5)

建立一個add(),這個函式接收兩個引數,a,b,通過print列印a+b的結果。通常情況下,函式不會直接答應結果,而是將處理結果通過return關鍵字返回。

>>>def add(a,b):

            return  a+b

>>>add(3,5)

有時候呼叫add()函式的時候不想傳參,可以為函式設定預設引數。

>>>def add(a=6,b=7):

                               returna+b

>>>add()

>>>add(5,8)

3.4.2 類與方法

在Python中用class關鍵字來建立類。

Demo.py

class A():
            def add(self,a,b):
                      Returnself.a+self.b
count=A()
print count.add(3,5)

建立了一個A()類,在類下面建立了一個add()方法。方法建立同樣適用關鍵字def,唯一不同的是方法必須有一個且必須是第一預設引數self,但是這個引數不用傳值。

XX.py

class A():
     def add(self,a,b):
           return a+b
class B(A):
     def sub(self,a,b):
           return a-b
count=B()
print count.add(4,5)

用count變數來等於B類,因為B類繼承了A類,所以B類也擁有了add()方法,所以count可以呼叫add()方法

3.5  模組

3.5.1 引用模組

在Python語言中通過from..import..的方式引用模組,下面引用time模組。

XX.PY

import time
print time.ctime()

如果只用到time模組下面的ctime()方法,可以這樣使用:

Xx.py

from time import ctime
print ctime()

一次性把time模組下面的所有方法都引進來:

Xx.py

#coding=utf-8
from time import *
print ctime()
print u“休息一兩秒”
sleep(2)

Python 所安裝的模組存放在C:\Python27\Lib\site-packages\目錄下面

3.5.2 模組呼叫

我們可以自己建立一個模組,然後通過另一個程式呼叫。

建立一個目錄(project),在目錄下面建立一個檔案(pub.py),在檔案中建立一個函式。

Project\pub.py

def add(a,b):
       print a+b

在相同的目錄下面建立一個檔案(count.py)

Project\count.py

import pub
print pub.add(3,5)

這樣就實現了跨檔案的函式呼叫。

**知識延伸:

在project目錄下面多了一個pub.pyc檔案,pyc檔案是一種二進位制檔案,是由py檔案經過編譯後,生成的檔案,是一種byte code,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是一種跨平臺的位元組碼,是由python的虛擬機器來執行。

3.5.3 跨目錄模組呼叫

呼叫檔案和被呼叫的檔案不在同一目錄下面,呼叫目錄如下:

----project/model/pub.py

----project/count.py

Ps:刪除剛才呼叫生成的pub.pyc檔案。再來執行count.py,python會給出提示資訊,找不到pub模組。那麼python是如何找到模組的呢?

首先要知道,python在執行import語句時,到底進行了什麼操作,按python的文件,它執行如下操作:

第一步,建立一個新的,空的module物件(它可能包含多個module)

第二步,把這個module物件插入sys.module中

第三步,裝載module的程式碼(如果需要,首先必須編譯)

第四步,執行新的module中對應的程式碼

在執行第三步時,首先要找到,module程式所在的位置,搜尋順序是:

當前路徑(以及從當前目錄指定的sys.path),然後是pythonPATH,然後是python的安裝設定相關的預設路徑。正因為這樣的順序,如果當前路徑或pythoPATH中存在與標準module同樣module,則會覆蓋標準module。也就是說,如果當前目錄下存在XML.py,那麼執行import XML時,匯入的是當前目錄下的module,而不是系統標準的XML。

我們可以先構建一個package,以普通的方式匯入,就可以直接訪問此package中各個module了。在python中的package必須包含一個__init__.PY的檔案.

現在我們就可以將..project/model/目錄新增到系統環境變數下的path下面,但是這樣不夠靈活,我們可以呼叫python的sys模組來實現。

Project\count.py

import sys
sys.path.append(‘\model’)
 
from model import pub
print pub.add(3,5)

呼叫sys模組,把model目錄通過append()方法追加到系統環境變數path下面。Append()是一個非常有用的方法,它通常用於向一個數據或集合尾部新增新資料。

PS:”\model”是一個相對路徑,如果pub.py在別的目錄下面,就需要用絕對路徑了,如:append(“D:\\project\\model”)

現在執行程式依然會告訴我們找不到model,我們還需要在model目錄下面建立一個__init__.PY的檔案,內容可以為空。這個檔案告訴python model是一個可以被呼叫的模組。現在就可以正常運行了。

那麼我們可以在__init__.PY的檔案目錄下面放點什麼呢?例如在model目錄下面有兩三個檔案(a.py、b.py、c.py),那麼開啟__init__.PY的檔案:

import a,b

Project\count.py

import sys
sys.path.append(‘model’)
from model import *
print pub.add(2,3)

現在我們用星號(*)表示匯入model 下面所有檔案,這個所有具體包含什麼由__init__.py 決定,因為只import 了a 和b 了.

3.6  異常

Python用異常物件(exception object來表示異常情況。遇到錯誤後,會引發異常。如果異常物件未被處理或捕捉,程式會用所謂的回溯(Traceback,一種錯誤資訊)終止執行。

Python提供try..except..語句來接收這個異常。

在python中所有的異常都繼承Exception,所以我們可以使用它來接收所有的異常。

Abnormal.py                           

try:
     open(“abc.txt”,”r”)
     print aa
except Exception:
     print u“異常了”

從python2.5版本之後,所有異常類有了新的基類BaseException,Exception同樣也繼承BaseException,所以我們也可以使用BaseException來接收所有的異常。

Python直接輸出異常資訊:

Abnormal.py

try:
     open(“abc.txt”,”r”)
      print aa
except BaseException,msg:
       print msg

在BaseException後面定義msg變數用於接收異常資訊,通過print將其打印出來:

Python中常見的異常:

BaseException 新的所有異常類的基類

Exception 所有異常類的基類,但繼承BaseException 類

AssertionError assert 語句失敗

AttributeError 試圖訪問一個物件沒有屬性

IOError 輸入輸出異常,試圖打一個不存的檔案(包括其它情況)時引起

NameError 使用一個還未賦值物件的變數

IndexError 在使用序列中不存在的所引進引發

IndentationError 語法錯誤,程式碼沒有正確的對齊

KeyboardInterrupt Ctrl+C 被按下,程式被強行終止

TypeError 傳入的物件型別與要求不符

SyntaxError Python 程式碼邏輯語法出錯,不能執行

3.6.2更多異常用法

   try...except 與else 配合使用:

Abnormal.py

try:
     open(“abc.txt”,”r”)
      prin taa
except BaseException,msg:
      print msg
else:
       print u‘沒有異常!’

Else語句只有在沒有異常的情況下才會被執行,但是有些情況下不管是否出現異常這些操作都能被執行,比如檔案的關閉,所得釋放,把資料庫連線返還給連線池等操作。我們可以使用Try…finally..語句來完成。

首先建立一個poem.txt檔案:

Pome.txt

ABC
EFG
HIJK
LMN
OPQ

通過一個小程式來讀取檔案中的內容。

ReadFile.py

#coding=utf-8
import time
 
files=file(“poem.txt”,”r”)
strs=files.readlines()
 
try:
  for I in strs:
       print I
       time.sleep(1)
finally:
       files.close()
       print “Clean up…closed the file”

3.6.3丟擲異常

Python中提供raise方法來丟擲一個異常:Abnormal.py

filename=raw_input(‘please input filename:’)
if filename==’hello’:
   raise NameError(‘input file name error!’)

第四章          WebDrive API

4.1 從定位元素開始

         在Python語言中對應的定位方法如下:

 find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()

find_element_by_css_selector()

用by定位元素,find_element()方法只用於定位元素。它需要兩個引數,第一個引數是定位方式,這個由By提供;第二個引數是定位的值。在使用By時需要將By類匯入。

from selenium.webdriver.common.by import By

4.2 控制瀏覽器

 WebDriver提供了set_window_size()方法來設定瀏覽器的大小。

 Test.py

#coding=utf-8
from selenium import webdriver
driver=webdriver.Chorme()
driver.get(“http://m.mail.10086.cn”)
 
print u“設定瀏覽器的寬480,高800顯示”
driver.set_window_size(480,800)
driver.quit()

Maximize_window()是瀏覽器最大化

WebDriver提供back()和forward()方法來模擬後退和前進。

Test.py

</pre><pre name="code" class="python">#coding=utf-8
from selenium import webdriver

driver=webdriver.Chrome()

firt_url=http://www.baidu.com
print “now access %r” %first_url
driver.get(first_url)

second_url=http://news.baidu.com
print “now access %s” %second_url
driver.get(second_url)


 
Print “back to %s” %(first_url)
driver.back()
 
print “forward to %s” % second_url
driver.forward()
 
driver.quit()

4.3 簡單元素操作

 在WebDriver中,大多簡單有趣的頁面互動的方法都將通過WebElement介面提供,最常用的操作頁面元素的方法如下:

Clear()  清除文字,如果是一個文字輸入框
Send_keys(*value)在元素上模擬按鍵輸入

Click()      單擊元素     

Login163.py

#coding=utf-8
from seleniumimport webdriver
 
driver=webdriver.Chrome()
driver.get(“http://www.126.com”)
 
driver.find_element_by_id(“idInput”).clear()
driver.find_element_by_id(“idInput”).send_keys(“username”)
driver.find_element_by_id(“pwdInput”).clear()
driver.find_element_by_id(“pwdInput”).send_keys(“password”)
driver.find_element_by_id(“loginBtn”).click()
 
driver.close()

Click()方法和send_keys()方法是web頁面操作中最常用到的兩個方法。

Click()方法不僅僅用於點選按鈕,還可以單擊任何可以點選文字/圖片連結、複選框、單選框、甚至是下拉框等。

Submit()方法用於提交表單,這裡特別用於沒提交按鈕的情況,例如輸入關鍵字之後的“回車”操作,那麼就可以通過submit()來提交搜尋框的內容。

Youdao.py

#coding=utf-8
from seleniumimport webdriver
 
driver=webdriver.Chrome()
dirver.get(“http://www.youdao.com”)
driver.find_element_by_id(“query”).send_keys(“hello”)
driver.find_element_by_id(“query”).submit()
 
driver.quit()

有時候submit()可以和click()方法互換使用,submit()同樣可以提交一個按鈕。

         Size           返回元素的尺寸

         Text                      獲取元素的文字

         Get_attribute(name)     獲取屬性值

         Is_displayed()                       設定該元素是否使用者可見。

Baidu.py

#coding=utf-8
from seleniumimport webdriver
 
driver=webdriver.Chrome()
driver.get(“http://www.baidu.com”)
 
size=driver.find_element_by_id(“kw”).size
print “kwelement size is %d” %size
 
text=driver.find_element_by_id(“cp”).text
print “cpelement text is %r” %text
 
attribute=driver.find_element_by_id(“kw”).get_attribute(“type”)
print “The typeattribute of kw element is %r” %attribut
 
result=driver.find_element_by_id(“kw”).is_displayed()
driver.close()

4.4 滑鼠事件

在webdriver中這些關於滑鼠操作的方法由ActionChains類提供。

ActionChains類提供的滑鼠操作的常用方法:

l  Perform()                             執行所有ActionChains()中儲存的行為

l  Context_click()                 右擊

l  Double_click()                   雙擊

l  Drag_and_drop()              拖動

l  Move_to_element()        滑鼠懸停

滑鼠右擊操作:xx.py

#conding=utf-8
from seleniumimport webdriver
fromselenium.webdriver.common.action_chains import ActionChains
driver=webdrive.Chrome()
driver.get(“http://yun.baidu.com/”)
 
driver.find_element_by_id(“TANGRAM__PSP_4__userName”).clear()
driver.find_element_by_id(“TANGRAM__PSP_4__userName”).send_keys(“username”)
driver.find_element_by_id(“TANGRAM__PSP_4__password”).clear()
driver.find_element_by_id(“TANGRAM__PSP_4__password”).send_keys(“password”)
driver.find_element_by_id(“TANGRAM__PSP_4__submit”).click()
 
disk_NET=driver.find_element_by_class_name(“pulldown-nav”)
ActionChains(driver).move_to_element(disk_NET)
DC=driver.find_element_by_class_name(“li disk”)
ActionChains(driver).double_click(DC)

Drag_and_drop(source,target):在原元素上按下滑鼠左鍵,然後移動到目標元素上釋放

4.5 鍵盤事件

Keys類提供鍵盤上幾乎所有的按鍵的方法,send_keys()方法可以模擬鍵盤輸入,除此之外還可以模擬鍵盤上的一些組合鍵,例如Ctrl+A,Ctrl+C等

KEYS.py

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.commom.keys import Keys
 
driver=webdriver.Chrome()
driver.get(“http://www.baidu.com”)
 
driver.find_element_by_id(“kw”).send_keys(“seleniumm”)
#刪除多輸入的一個m
driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE)
 
#Ctrl+a全選輸入框內容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,’a’)
#Ctrl+x全選輸入框內容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,’x’)
#Ctrl+v全選輸入框內容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,’v’)
driver.find_element_by_id(“su”).send_keys(Keys.ENTER)
 
driver.close()

匯入鍵盤類包:from selenium.webdriver.commom.keys import Keys

經常用到鍵盤操作:

send_keys(Keys.BACK_SPACE)刪除鍵(BackSpace)

send_keys(Keys.SPACE)空格鍵(Space)

send_keys(Keys.TAB)製表鍵(Tab)

send_keys(Keys.ESCAPE)回退鍵(Esc)

send_keys(Keys.ENTER)回車鍵(Enter)

send_keys(Keys.CONTROL,'a')全選(Ctrl+A)

send_keys(Keys.CONTROL,'c')複製(Ctrl+C)

send_keys(Keys.CONTROL,'x')剪下(Ctrl+X)

send_keys(Keys.CONTROL,'v')貼上(Ctrl+V)

send_keys(Keys.F1)鍵盤F1

相關推薦

Selenium2 Python 自動化測試實戰學習筆記(四)

第五章          自動化測試模型 一個自動化測試框架就是一個整合體系,在這一體系中包含測試功能的函式庫、測試資料來源、測試物件識別標準,以及種可重用的模組。自動化測試框架在發展的過程中經歷了幾個階段,線性測試、模組驅動測試、資料驅動測試、關鍵字驅動測試。 Pytho

Selenium2 Python 自動化測試實戰學習筆記

第一章  自動化測試基礎 1.1 軟體測試分類 軟體測試 V 模型: 需求分析---設計---編碼 驗收測試--------系統測試---整合測試—單元測試 單元測試:是對程式中的單個子程式或具有獨立功能的程式碼段進行測試的過程 整合測試:檢查模組之間的介面是否正確 系統

船長帶你看書——《selenium2 python 自動化測試實戰》(2)瀏覽器操作

python lin div 看書 名稱 ext ice 微信公眾號 很難 瀏覽器操作 # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Fi

selenium2 python 自動化測試實戰》(5)——鍵盤事件

display 技術 添加 lan data- vbs nbsp .cn images 鍵盤事件,就是鍵盤上的一些操作,比如Ctrl +C,Ctrl+V,Ctrl+X等。 對鍵盤的操作需要導入另一個鍵盤的庫: from selenium.webdriver.commo

selenium2 python 自動化測試實戰》(13)——上傳文件

dml 實戰 文件的 -c pbm erl sel png flow 看代碼: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Fir

selenium2 python 自動化測試實戰》(21)——unittest單元測試框架解析

nbsp add pic post 二維碼 mage ron 而且 aaa unittest是展開自動化測試的基礎——這個框架很重要! 我們先自己寫一個測試類: 1、被測試類 Widthget.py: # coding: utf-8class Wi

selenium2 python 自動化測試實戰》(20)——Selenium工具介紹

命令 aic 插件 rhui 所有 key 框架 地址欄 uga (一)Selenium IDE Firefox的一個插件,有助於我們理解測試框架。在附加組件裏搜索下載,一般搜的結果裏前幾個都不是,得點那個查看更多才行,找到這個: 安裝以後瀏覽器工具欄會有

推薦書籍《selenium2 python自動化測試》附下載連結

Selenium 2自動化測試實戰:基於Python語言分為14個章節,第1章是自動化測試相關基礎知識的介紹;第2章到第10章是本書的重點,循序漸進地介紹了自動化測試所用到的技術;第11章通過一個具體的專案綜合運用了前面章節所介紹的技術與技巧。第12章到第14章

Web自動化測試Selenium 學習筆記(一)

1、Web自動化測試簡介自動化基礎:自動化用例編寫、Selenium優勢及原理、自動化環境搭建Selenium基礎:常見8大元素定位(表格)、常見元素處理、下拉框元素處理、不同視窗切換、元素進階、元素等待需求到框架    需求分析-用例設計-基礎指令碼-登入/購物指令碼重構-

用網路爬蟲爬取新浪新聞----Python網路爬蟲實戰學習筆記

今天學完了網易雲課堂上Python網路爬蟲實戰的全部課程,特在此記錄一下學習的過程中遇到的問題和學習收穫。 我們要爬取的網站是新浪新聞的國內版首頁 下面依次編寫各個功能模組 1.得到某新聞頁面下的評論數 評論數的資料是個動態內容,應該是存在伺服器

Selenium2自動化測試實戰基於Python語言》讀書筆記--第3章

第3章 Python基礎 由於作者寫的這本書完全是以Python語言為基礎的,所以需要讀者具備一定的Python程式設計能力。如果說最好的Python基礎教程,那應該說是《笨方法學Python》了。 3.1 Python哲學 <span style="colo

Selenium2自動化測試實戰基於Python語言》讀書筆記--第1章

第1章 自動化測試基礎 1.1 軟體測試分類 根據專案流程階段劃分軟體測試 1) 單元測試:又稱模組測試,是對程式中的單個子程式或具有獨立功能的程式碼段進行測試的過程; 2)整合測試:是在單元測試的基礎上,先通過單元模組組裝成系統或子系統,再進行

python自動化測試學習筆記-2-字典、元組、字符串方法

ima weight ict 常用 分享圖片 def 刪除列 設置 統計 一、字典 Python字典是另一種可變容器模型,且可存儲任意類型對象,如字符串、數字、元組等其他容器模型。 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,

【Mac + Appium學習(四)】之常用的IOS自動化測試API總結 Selenium2+python自動化36-判斷元素存在 Appium+Python3+iOS定位元素

環境: Appium:1.9.1 Appium-desktop:1.7.1 Xcode:10.0 IOS:iPhone5S(10.3.3) Mac:10.13.6   ①獲取手機螢幕size:長、寬 《Appium Appium 1.9 版本 BUG:使用

Selenium2+python自動化學習筆記2)

from selenium import webdriverdriver = webdriver.Ie()driver.get=("http://www.baidu.com")driver.refresh() #頁面重新整理driver.back()#返回上一頁driver.forward()#切換下一頁dr

10.Selenium2 自動化測試實戰-基於Python語言-顯示等待

WebDriver提供了兩種型別的等待:顯示等待和隱式等待。 1.顯示等待使WebDriver等待某個條件成立時繼續執行,否則在達到最大時長時丟擲超時異常(TimeoutException)。from selenium import webdriver from selen

4. Selenium2 自動化測試實戰-基於Python語言-跨目錄模組呼叫

projec/ |___model/ |      |___count.py |      |___new_count.py |___test.py count.py class A(): def add(self,a,b): return a

Selenium+Python自動化測試學習問題總結筆記

錯誤 問題總結 測試 自動化測試 右擊 筆記 相同 src 定義 1.問題描述:不能導入自定義類 錯誤內容:This inspection detects names that should resolve but don‘t. Due to dynamic disp

selenium2自動化測試實戰--基於Python語言

集成測試 包括 測試計劃 多語言 模擬 功能測試 很難 說明 簡單的 自動化測試基礎 一、 軟件測試分類 1.1 根據項目流程階段劃分軟件測試 1.1.1 單元測試   單元測試(或模塊測試)是對程序中的單個子程序或具有獨立功能的代碼段進行測試的過程。 1.1.2

selenium + python自動化測試unittest框架學習(三)webdriver對頁面其他控件操作(三)

文件的 文件路徑 內容 option selenium script web 對話 對話框 1.對話框,下拉框 (1)對話框的有兩種,一種是iframe格式的,需要switch_to_iframe()進行定位,現在大部分的對話框是div格式的,這種格式的可以通過層級定位來定