天天看點

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

在程式員的世界中,一切重複性的工作,都應該通過程式自動執行。

「自動化測試」就是一個最好的例子。

随着網際網路應用開發周期越來越短,疊代速度越來越快,隻會點點點,不懂開發的手工測試,已經無法滿足如今的業務要求,隻能被企業逐漸裁員淘汰。

「自動化測試和持續測試」就成為了業界主流。

如果在招聘網站搜尋「測試工程師」的職位,95% 的招聘都會有「掌握自動化測試以及 Python」的相關要求。可以說,

python 自動化已經不是加分項了,而成了面試成功的必備技能。
python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!
python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

是以,如果你正準備入行或者轉崗做測試工程師的工作,Python 自動化測試将是必學技能之一。

Python + Selenium

說到自動化測試,就不得不提大名鼎鼎的

Selenium

。Selenium 是如今最常用的自動化測試工具之一,支援快速開發自動化測試架構,且支援在多種浏覽器上執行測試。

Selenium

學習難度小,開發周期短。對測試人員來說,如果你程式設計經驗不足,

python + Selenium

是個很好的選擇。文法簡約,清晰,可以顯著減少後期維護難度和工作壓力。

今天,我們就介紹一下如何用 Selenium 快速開始 Web 測試工作!

(以下内容出自實驗樓課程——「Python 自動化測試實戰」,歡迎大家來實驗樓邊敲代碼邊練習!)

課程位址:

Python 自動化測試實戰​www.shiyanlou.com

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

Selenium 基礎知識

本節課程介紹 Selenium 的功能作用及安裝、環境配置,并介紹 Selenium 常用的文法。

知識點

  • Selenium 介紹
  • 安裝 Selenium
  • 安裝 geckodriver 浏覽器驅動
  • Selenium 的元素定位
  • 點選元素
  • 清空文本輸入框、向文本輸入框輸入文本
  • 擷取元素屬性
  • 下拉頁面
  • 頁面彈窗的定位以及彈窗文本的擷取
  • 視窗跳轉
  • iframe 定位

安裝需要的庫:

sudo pip3 install --upgrade pip
sudo pip3 install selenium
           

實驗環境

  • Firefox 浏覽器
  • python 3.5
  • geckodriver 0.22.0
  • selenium 3

實驗步驟

Selenium 在進行回歸測試的時候會被經常用到,接下來我們就學習 Selenium 的知識。當我們進入selenium 官網時可以看到,網站的 title 上寫的是

Selenium - Web Browser Automation

,翻譯過來就是網站浏覽器自動化。也就是說我們把平時在網頁上做的功能測試用 Selenium 代碼實作,這樣在回歸測試的時候就可以達到省時省力的目的。Selenium 在工作中的應用常見于功能基本穩定、沒有頻繁大變動的網頁。是以我們一般是在業務功能上線以後,為確定頁面穩定,用 Selenium 實作自動化回歸測試,結合 git、Jenkins 一起,每當有新功能上線時都會執行寫好的 Selenium 代碼以驗證新上線的業務對原有頁面功能沒有造成影響。如有報錯,則發送相應的通知,這樣就可以確定對線上功能出現的未預期 bug 進行及時的修複。

安裝 Selenium

xfce

中輸入

sudo pip3 install selenium

安裝最新版本的 Selenium。

浏覽器、geckodriver

既然名為網頁浏覽器自動化自然要安裝浏覽器,一般來說,

Chrome

Firefox

等浏覽器都可以,這裡我們使用目前系統自帶的

Firefox

作為實驗浏覽器。現在我們需要下載下傳對應的浏覽器驅動

geckodriver

,在

xfce

中輸入以下指令:

$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz
           

下載下傳成功後繼續輸入:

$ tar zxvf geckodriver-v0.22.0-linux64.tar.gz
$ sudo mv geckodriver /usr/local/bin
           

以上操作為:将檔案解壓,并移動至

/usr/local/bin

檔案夾中。

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

将目錄切換至桌面:

$ cd /home/shiyanlou/Desktop
           

下面我們來驗證是否正常安裝,在終端使用指令

vim demo.py

建立檔案并寫入代碼:

#! /usr/bin/python3
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.shiyanlou.com")
           

輸入

python3 demo.py

如果浏覽器打開并進入實驗樓網站,則環境配置就成功了。

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!
python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

浏覽器操作

在終端使用指令

vim demo2.py

建立檔案并寫入代碼:

#! /usr/bin/python3

from selenium import webdriver
from time import sleep


driver = webdriver.Firefox()

# 浏覽器進入百度網站
driver.get("https://www.baidu.com")

# 設定浏覽器寬800,高400
driver.set_window_size(800, 400)

# 等待3秒
sleep(3)

# 重新整理頁面
driver.refresh()

# 等待3秒
sleep(3)

# 最大化視窗
driver.maximize_window()

# 退出浏覽器
driver.quit()

- name: check file
  script: |
    #!/bin/bash
    ls /home/shiyanlou/Desktop/demo2.py
  error:
    還沒有在 /home/shiyanlou/Desktop 目錄下建立 demo2.py 檔案
           

以上代碼會在浏覽器中執行:

  • 打開浏覽器
  • 進入百度網站
  • 設定視窗大小為寬 800,高 400
  • 等待 3 秒
  • 重新整理頁面
  • 最大化視窗
  • 退出浏覽器

示範

這裡我們使用51Testing 軟體測試論壇作為示範網站,如果大家沒有賬号需要先去注冊一個,下面的代碼将會使用到賬号資訊,在終端使用指令

vim demo3.py

建立檔案并寫入代碼:

#! /usr/bin/python3
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
# 進入51testing網站driver.get("http://bbs.51testing.com/forum.php")
sleep(3)

# 用id定位賬号輸入框并輸入賬号
driver.find_element_by_id("ls_username").send_keys("您的使用者名")

# 用id定位密碼輸入框并輸入密碼
driver.find_element_by_id("ls_password").send_keys("密碼")

# 定位“登入”按鈕并擷取登入按鈕的文本
txt = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').text

# 列印擷取的文本
print(txt)

# 定位“登入”按鈕并擷取登入按鈕的type屬性值
type = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').get_attribute("type")

# 列印type屬性值
print(type)

# 定位“登入”按鈕并進行點選操作
driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()
           

在終端執行

python3 demo3.py

運作,結果顯示如下:頁面顯示:

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!
python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

執行以上代碼後會在 xfce 中輸出如下資訊:

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!
篇幅有限,後續共有 6 節實驗,歡迎大家來實驗樓親手完成這個項目。課程位址:

Python 自動化測試實戰​www.shiyanlou.com

python selenium 擷取元素下的元素個數_Python + Selenium,分分鐘搭建 Web 自動化測試架構!

繼續閱讀