日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Selenium自动化测试框架

發(fā)布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Selenium自动化测试框架 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.Selenium概述

1.什么是框架?

框架(framework)是一個框子——指其約束性,也是一個架子——指其支撐性。是一個基本概念上的結(jié)構(gòu),用于去解決或者處理復雜的問題。

框架是整個或部分系統(tǒng)的可重用設計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認為,框架是可被應用開發(fā)者定制的應用骨架。前者是從應用方面而后者是從目的方面給出的定義。

框架,其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡單說就是使用別人搭好的舞臺,你來做表演。

2.為什么使用框架?

1)自己從頭實現(xiàn)太復雜

2)使用框架能夠更專注于業(yè)務邏輯,加快開發(fā)速度

3)框架的使用能夠處理更多細節(jié)問題

4)使用人數(shù)多,穩(wěn)定性,擴展性好

3.webdriver工作原理


4.selenium環(huán)境搭建

1)python3.7

2)Firefox35(大于43)

3)selenium框架
穩(wěn)定版 2.48.0 (pip install selenium==2.48.0)

2.Selenium IDE

1.什么是Selenium-IDE?

Selenium的IDE(集成開發(fā)環(huán)境)是一個易于使用的Firefox插件,用于開發(fā)Selenium測試案例。它提供了一個圖形用戶界面,用于記錄使用Firefox瀏覽器,用來學習和使用Selenium用戶操作,但它只能用于只用Firefox瀏覽器不支持其它瀏覽器。

2.環(huán)境安裝

firefox官網(wǎng)

3.IDE功能簡介

1.文件:創(chuàng)建、打開和保存測試案例和測試案例集。編輯:復制、粘貼、刪除、撤銷和選擇測試案例中的所有命令。Options : 用于設置seleniunm IDE。
2.用來填寫被測網(wǎng)站的地址。
3.速度控制:控制案例的運行速度。
4.運行所有:運行一個測試案例集中的所有案例。
5.運行:運行當前選定的測試案例。
6.暫停/恢復:暫停和恢復測試案例執(zhí)行。
7.單步:可以運行一個案例中的一行命令。
8.錄制:點擊之后,開始記錄你對瀏覽器的操作。
9.案例集列表。
10.測試腳本;table標簽:用表格形式展現(xiàn)命令及參數(shù)。source標簽:用原始方式展現(xiàn),默認是HTML語言格式,也可以用其他語言展示。
11.查看腳本運行通過/失敗的個數(shù)。
12.當選中前命令對應參數(shù)。
13.日志/參考/UI元素/Rollup

模擬使用selenium IDE

1.錄制selenium腳本

2.導出為python.py

3.保存到桌面

4.復制到pycharm,運行

3.Selenium API基礎

瀏覽器驅(qū)動對象

1.庫的導入
from selenium import webdriver

2.創(chuàng)建瀏覽器對象

driver = webdriver.xxx()
使用dir(driver)查看方法

3.瀏覽器尺寸相關操作

maximize_window() # 最大化
get_window_size() # 獲取瀏覽器尺寸
set_window_size() # 設置瀏覽器尺寸

練習

from selenium import webdriverdriver=webdriver.Firefox() driver.maximize_window() print(driver.get_window_size()) driver.set_window_size(2000,2200) print(driver.get_window_size())


4.瀏覽器位置相關操作

get_window_position() 獲取瀏覽器位置

set_window_position(x,y) 設置瀏覽器位置

顯示器以左上角為(0,0),所有的位置操作都是相對于顯示器左上角展開的位移操作,單位是像素。

5.瀏覽器的關閉操作

close() 關閉當前標簽/窗口

quit() 關閉所有標簽/窗口

練習

from selenium import webdriverdriver=webdriver.Firefox() driver.set_window_size(2000,2200) print(driver.get_window_position()) driver.set_window_position(100,200) driver.close()

6.頁面請求操作

driver.get(url) 請求某個url對應的響應
refresh() 刷新頁面操作
back() 回退到之前的頁面
forward() 前進到之后的頁面

練習

from selenium import webdriver import time driver=webdriver.Firefox() driver.get('http://www.baidu.com') time.sleep(2) driver.refresh() time.sleep(2) driver.get('https://zhuanlan.zhihu.com') driver.back() time.sleep(2) driver.forward() time.sleep(2) driver.close()

獲取斷言信息

1.斷言的定義

斷言是編程術(shù)語,表示為一些布爾表達式,程序員相信在程序中的某個特定點該表達式值為真,可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言。

2.獲取斷言信息的操作

current_url 獲取當前訪問頁面url

title 獲取當前瀏覽器標題

get_screenshot_as_png() 保存圖片

get_screenshot_as_file(file) 直接保存

page_source 網(wǎng)頁源碼

練習

from selenium import webdriver import time driver=webdriver.Firefox()driver.get('http://www.baidu.com') print(driver.current_url) print(driver.title) data=driver.get_screenshot_as_png() with open('111.png','wb') as f:f.write(data)datadata=driver.get_screenshot_as_file('222.png') print(driver.page_source)


元素的定位

1.元素定位方法的分類(調(diào)用方式):

直接調(diào)用型(推薦方式)

driver.find_element_by_xxx(value)

使用By類型(需要導入By)

from selenium.webdriver.common.by import By driver.find_element(By.xxx,value)

2.元素定位方法的分類(按定位方式):

3.八種定位方式的示例:

driver.find_element_by_xpath(value)driver.find_element_by_css_selector(value)driver.find_element_by_id(value)driver.find_element_by_name(value)driver.find_element_by_class_name(value)driver.find_element_by_tag_name(value)driver.find_element_by_link_text(value)driver.find_element_by_partial_link_text(value)

元素的操作

對元素的相關操作,一般要先獲取到元素,再調(diào)用相關方法

element = driver.find_element_by_xxx(value)

點擊和輸入

element.clear() 清空輸入框 element.send_keys(data) 輸入數(shù)據(jù) element.click() 點擊操作

4.Selenium API高級

1.多標簽之間的切換

場景:有的時候點擊一個鏈接,新頁面并非由當前頁面跳轉(zhuǎn)過去,而是新開一個頁面打開,這種情況下,計算機需要識別多標簽或窗口的情況。

1.獲取所有窗口的句柄

handles = driver. window_handles

調(diào)用該方法會得到一個列表,在selenium運行過程中的每一個窗口都有一個對應的值存放在里面。

2.通過窗口的句柄進入的窗口

driver.switch_to_window(handles[n])driver.switch_to.window(handles[n]) (推薦使用)

通過窗口句柄激活進入某一窗口

多表單切換

在網(wǎng)頁中,表單嵌套是很常見的情況,尤其是在登錄的場景

1.什么是多表單?
實際上就是使用iframe/frame,引用了其他頁面的鏈接,真正的頁面數(shù)據(jù)并沒有出現(xiàn)在當前源碼中,但是在瀏覽器中我們看到,簡單理解可以使頁面中開了一個窗口顯示另一個頁面

2.處理方法

直接使用id值切換進表單

driver.switch_to.frame(value)/driver.switch_to_frame(value)

定位到表單元素,再切換進入

el = driver.find_element_by_xxx(value) driver.switch_to.frame(el) /driver.switch_to_frame(el)

總結(jié)

以上是生活随笔為你收集整理的Selenium自动化测试框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。