国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web自動化測試(一)

這篇具有很好參考價值的文章主要介紹了Web自動化測試(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、自動化測試

1、優(yōu)點

在最短時間內(nèi)運行最多的bug
腳本重復運行
減少人為錯誤
克服手工測試局限性(圖片大?。?/p>

2、概念
讓程序代替人工去驗證系統(tǒng)功能的過程
3、解決問題

解決回歸測試
解決壓力測試
解決兼容性測試
提高測試效率,保證產(chǎn)品質(zhì)量

  • 誤區(qū):
  • 自動化測試可以完全替代手工測試
  • 自動化測試一定比手工測試厲害
  • 自動化測試可以發(fā)掘更多BUG
  • 自動化測試適用于所有功能

4、自動化測試分類

web-自動化測試
移動-自動化測試
接口-自動化測試
單元測試-自動化測試

二、Web自動化測試

概念:讓程序代替人工自動驗證web項目功能的過程

什么Web項目適合做自動化測試?
1、需求變動不頻繁
2、項目周期長
3、項目需要回歸測試

Web自動化測試在什么階段開始?
功能測試完畢(手工測試)

Web自動化測試所屬分類
1、黑盒測試(功能測試)
2、白盒測試(單元測試)
3、灰盒測試(接口測試)
Web自動化測試屬于黑盒測試。

三、Selenium工具

Selenium是一個用于Web應用程序的自動化測試工具

特點:
開源軟件、跨平臺、支持多種瀏覽器、支持多種語言、成熟穩(wěn)定、功能強大

四、元素定位

為什么要使用元素定位?
要使用web自動化操作元素,必須首先找到此元素
定位工具:F12鍵(開發(fā)者工具)
定位元素依賴于什么?
1、標簽名
2、屬性
3、層級
4、路徑

4.1 元素定位方式

1、id
2、name
3、class_name(使用元素的class屬性定位)
4、tag_name(標簽名稱<標簽名 …/>)
5、link_text(定位超鏈接 a標簽)
6、partial_link_text(定位超鏈接 a標簽 模糊)
7、xpath(基于元素路徑)
8、css(元素選擇器)

4.2 id定位

id定位就是通過元素的id屬性來定位元素,HTML規(guī)定id屬性在整個HTML文檔是唯一的

方法:
element = driver.find_element_by_id(id)

# 導包
from time import sleep

from selenium import webdriver
# 獲取瀏覽器對象
driver = webdriver.chrome()
# 打開url
url = ""
driver.get(url)
# 查找用戶名元素
username = driver.find_element_by_id("userA")
# 查找密碼元素
password = driver.find_element_by_id("passwordA")
# 用戶名輸入
username.send_keys("admin")
# 密碼輸入
password.send_keys("123456")
# 暫停3秒
sleep(3)
# 退出瀏覽器驅(qū)動
driver.quit()

4.3 name定位

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

url = ""

driver.get(url)

driver.find_element_by_name("userA").send_keys("admin")

driver.find_element_by_name("passwordA").send_keys("123456")

sleep(3)

driver.quit()

4.4 class_name定位

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

url = ""

driver.get(url)

driver.find_element_by_class_name("telA").send_keys("15811111111")

driver.find_element_by_class_name("emailA").send_keys("123@qq.com")

sleep(3)

driver.quit()

id:一般為唯一標識符
name:可以重名
class:多個命名

4.5 tag_name定位

element = driver.find_element_by_tag_name(tag_name)
如果存在多個相同標簽,則返回符合條件的第一個標簽

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

url = ""

driver.get(url)

driver.find_element_by_tag_name("input").send_keys("admin")

sleep(3)

driver.quit()

4.6 link_text定位

from selenium import webdriver

driver = webdriver.Chrome()

url = ""

driver.get(url)
# 只能使用精準匹配(標簽的全部文本內(nèi)容)
driver.find_element_by_link_text("訪問 谷歌 網(wǎng)站").click()

driver.quit()

4.7 partial_link_text定位

from selenium import webdriver

driver = webdriver.Chrome()

url = ""

driver.get(url)
# 使用模糊,唯一代表關(guān)鍵詞
# 沒有使用唯一代表詞,默認操作符合條件的第一個元素
driver.find_element_by_partial_link_text("訪問").click()

driver.quit()

4.8 XPath定位

為什么使用XPath和CSS定位?
1、id,name,class:依賴于元素這三個對應的屬性,如果元素沒有以上三個屬性,定位方法不能使用
2、link_text,partial_link_text:只適合超鏈接
3、tag_name:只能找頁面唯一元素,或者頁面中多個相同元素中的第一個元素

  • 定位策略:
  • 1、路徑-定位
  • 2、利用元素屬性-定位
  • 3、屬性與邏輯結(jié)合-定位
  • 4、層級與屬性結(jié)合-定位

element = driver.find_element_by_xpath(xpath)

"""
需求:
    1、使用絕對路徑定位 用戶名 輸入admin
    2、暫停2秒鐘
    3、使用相對路徑定位 密碼框 輸入123
"""
from selenium import webdriver

from time import sleep

driver = webdriver.Chrome()

url = ""

driver.get(url)

# 使用絕對路徑定位用戶名
driver.find_element_by_xpath("/html/body/form/div/fieldset/p[1]/input").send_keys("admin")

# 暫停兩秒
sleep(2)

# 使用相對路徑定位密碼框
driver.find_element_by_xpath("http://input[@id='passwordA']").send_keys("123456")

driver.quit()

擴展:
1、//[text()=‘XXX’] 定位文本值等于XXX的元素,一般適合p標簽,a標簽
2、//
[contains(@屬性,‘XXX’)] 定位屬性包含XXX的元素
3、//*[starts-with(@屬性,‘XXX’)]定位屬性以XXX開頭的元素

4.8 CSS定位

CSS是一種語言,它用來描述HTML元素的顯示樣式,在CSS中,選擇器是一種模式,用于選擇需要添加樣式的元素

element = driver.find_element_by_css_selector(css_selector)

定位策略
1、id選擇器
前提:元素必須有id屬性,語法:#id
2、class選擇器
前提:元素必須有class屬性,語法:.class
3、元素選擇器
語法:element
4、屬性選擇器
語法:[屬性名=屬性值]
5、層級選擇器
語法:p>input;p input,大于號必須為子元素,空格則不用

"""
需求:
    1、使用id選擇器 用戶名 輸入admin
    2、使用屬性選擇器 密碼框 輸入123456
    3、使用class選擇器 定位電話號碼 12399999999
    4、使用元素選擇器 定位span標簽獲取文本值
    5、使用層級選擇器 定位Email輸入123@qq.com
"""
from selenium import webdriver

from time import sleep

driver = webdriver.Chrome()
url = ""
driver.get(url)
# 1、使用id選擇器 用戶名 輸入admin
driver.find_element_by_css_selector("#userA").send_keys("admin")
# 2、使用屬性選擇器 密碼框 輸入123456
driver.find_element_by_css_selector("[name='passwordA']").send_keys("123456")
# 3、使用class選擇器 定位電話號碼 12399999999
driver.find_element_by_css_selector(".telA").send_keys("12399999999")
# 4、使用元素選擇器 定位span標簽獲取文本值
span = driver.find_element_by_css_selector("span").text
print("獲取的span標簽文本值:", span)
# 5、使用層級選擇器 定位Email輸入123@qq.com
driver.find_element_by_css_selector("p>input[placeholder='電子郵箱A']").send_keys("123@qq.com")

driver.quit()

4.9 擴展-封裝

定位一組元素
方法:driver.find_elements_by_xxx()
返回結(jié)果:類型為列表,要對列表進行訪問和操作必須指定下標或進行遍歷,下標從0開始

# 擴展八種元素定位的底層實現(xiàn)
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = ""
driver.get(url)
driver.find_element(By.ID, "userA").send_keys("admin")
driver.find_element(By.CSS_SELECTOR, "passwordA").send_keys("123456")
driver.quit()

By類需要導包 from selenium.webdriver.common.by import By

五、元素操作

常用操作方法:
1、click() 單擊元素
2、send_keys(value) 模擬輸入
3、clear() 清除文本

from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

url = ""

driver.get(url)
# 輸入admin
driver.find_element_by_name("userA").send_keys("admin")
# 輸入密碼123456
driver.find_element_by_name("passwordA").send_keys("123456")
# 輸入電話 12399999999
driver.find_element(By.CSS_SELECTOR, ".telA").send_keys("12399999999")
# 輸入郵箱 123@qq.com
driver.find_element(By.CSS_SELECTOR, "#emailA").send_keys("123@qq.com")
# 暫停3秒
sleep(3)
# 修改號碼 11199999999
driver.find_element(By.CSS_SELECTOR, ".telA").clear()
driver.find_element(By.CSS_SELECTOR, ".telA").send_keys("11199999999")
# 暫停3秒
sleep(3)
# 點擊注冊按鈕
driver.find_element(By.CSS_SELECTOR, "button").click()
driver.quit()

六、瀏覽器常用操作API

web自動化測試,軟件測試,前端,python,單元測試

from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

url = "https://www.csdn.net/"

driver.get(url)

# 將瀏覽器最大化
driver.maximize_window()
# 設(shè)置固定大小 300,200
driver.set_window_size(300, 200)
# 移動瀏覽器窗口位置 x:320,y:150
driver.set_window_position(320, 150)
# 最大化
driver.maximize_window()
# 點擊 注意:要演示后退功能,必須先執(zhí)行打開新的網(wǎng)站
driver.find_element((By.CSS_SELECTOR, "#li:nth-child(1) > a")).click()
sleep(3)
# 執(zhí)行后退
driver.back()
sleep(3)
# 執(zhí)行前進 注意:前進必須放在后退之后
driver.forward()
sleep(3)

driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = " "
driver.get(url)

# 將瀏覽器最大化
driver.maximize_window()
# 用戶名輸入 目的:刷新完成--清空
driver.find_element(By.CSS_SELECTOR, "#user").send_keys("admin")
# 刷新
driver.refresh()
# 獲取title
title = driver.title
# 獲取當前url
current_url = driver.current_url
# 點擊 注冊A網(wǎng)頁 打開新窗口
driver.find_element(By.PARTIAL_LINK_TEXT, "注冊A網(wǎng)頁").click()
# 關(guān)閉主窗口
driver.close()

七、獲取元素信息

web自動化測試,軟件測試,前端,python,單元測試

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = " "
driver.get(url)

# 將瀏覽器最大化
driver.maximize_window()
# 獲取用戶名文本框大小
size = driver.find_element(By.CSS_SELECTOR, "#user").size
print("用戶名大小為:", size)
# 獲取頁面上第一個超文本鏈接內(nèi)容
text = driver.find_element(By.CSS_SELECTOR, "a").text
print("頁面中第一個a標簽為:", text)
# 獲取頁面上第一個超文本鏈接地址
attr = driver.find_element(By.CSS_SELECTOR, "a").get_attribute("href")
print("頁面中第一個a標簽為href屬性值為:", attr)
# 判斷span元素是否可見
display = driver.find_element(By.CSS_SELECTOR, "span").is_displayed()
print("span元素是否可見", display)
# 判斷取消按鈕是否可用
enabled = driver.find_element(By.CSS_SELECTOR, "cancel").is_enabled()
print("取消按鈕是否可用", enabled)
# 判斷旅游是否被選中
selected = driver.find_element(By.CSS_SELECTOR, "#ly").is_selected()
print("旅游是否被選中", selected)
driver.quit()

八、鼠標及鍵盤操作

web自動化測試,軟件測試,前端,python,單元測試

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = " "
driver.get(url)
# 實例化并獲取ActionChains類
action = ActionChains(driver)
# 定位用戶名 在用戶名上右擊鼠標 預期:粘貼
action.context_click(driver.find_element(By.CSS_SELECTOR, "#userA")).perform()
# 發(fā)送用戶名admin并進行雙擊 預期:選中admin
action.double_click(driver.find_element(By.CSS_SELECTOR, "#userA").send_keys("admin")).perform()
# 移動到注冊按鈕上 預期:按鈕變色 出現(xiàn)加入會員A
action.move_to_element(driver.find_element(By.CSS_SELECTOR, "button")).perform()

driver.quit()
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = " "
driver.get(url)
# 實例化并獲取ActionChains類
action = ActionChains(driver)
source = driver.find_element(By.CSS_SELECTOR, "#div1")
target = driver.find_element(By.CSS_SELECTOR, "#div2")
action.drag_and_drop(source, target).perform()
# 擴展:偏移
action.drag_and_drop_by_offset(source, xoffset=360, yoffset=180).perform()
driver.quit()

web自動化測試,軟件測試,前端,python,單元測試

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = " "
driver.get(url)
username = driver.find_element(By.CSS_SELECTOR, "#userA")
username.send_keys("admin1")
# 刪除
username.send_keys(Keys.BACK_SPACE)
# 全選
username.send_keys(Keys.CONTROL, "a")
# 復制
username.send_keys(Keys.CONTROL, "c")
# 粘貼
driver.find_element(By.CSS_SELECTOR, "#passwordA").send_keys(Keys.CONTROL, "v")
driver.quit()

九、元素等待

元素等待:在定位頁面元素時如果未找到,會在指定時間內(nèi)一直等待的過程

元素等待類型:
1、隱式等待:driver.implicitly_wait(timeout),timeout單位秒
2、顯式等待:顯式等待的相關(guān)方法封裝在WebDriverWait類中
說明:
隱式等待為全局設(shè)置,設(shè)置一次,就會作用于所有元素
顯示等待針對單個元素生效文章來源地址http://www.zghlxwxcb.cn/news/detail-624898.html

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
# 設(shè)置元素等待 隱式等待10秒
driver.implicitly_wait(5)
url = ""
driver.get(url)
driver.find_element(By.CSS_SELECTOR, "#user").send_keys("admin")
sleep(2)
driver.quit()
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome()
# 設(shè)置元素顯式等待
url = ""
driver.get(url)
# 實例化WebDriverWait()并調(diào)用until方法
# 調(diào)用until放啊返回的一定是一個元素
username = WebDriverWait(driver, timeout=30, poll_frequency=0.5).until(lambda x:x.find_element_by_id("#user"))
# 注意:此時username還不是元素,只有代碼運行起來才是元素
username.send_keys("admin")
sleep(2)
driver.quit()
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
# send_keys上傳文件
driver = webdriver.Chrome()
driver.implicitly_wait(5)
url = ""
driver.get(url)
driver.find_element(By.CSS_SELECTOR, "[name='upfilea']").send_keys("D:\hello.txt")
sleep(2)
driver.quit()

到了這里,關(guān)于Web自動化測試(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 自動化測試 ——自動卸載軟件

    自動化測試 ——自動卸載軟件

    在平常的測試工作中,經(jīng)常要安裝軟件,卸載軟件, 即繁瑣又累。 安裝和卸載完全可以做成自動化。 安裝軟件我們可以通過自動化框架,自動點擊Next,來自動安裝。 卸載軟件我們可以通過msiexec命令行工具自動化卸載軟件 平常我們手動卸載軟件都是到控制面板中的\\\"添加/刪除

    2024年02月08日
    瀏覽(27)
  • 軟件測試 -- 自動化測試(Selenium)

    ????????在這里記錄一下? 自動化測試 -- Selenium 的一些基礎(chǔ)知識點,只記錄方法。 Selenium 瀏覽器操作 Selenium 元素定位(包含 Web 表單) findElement 和 findElements ????????findElement 和 findElements 都可以用于定位元素,它們都需要傳入一個 By 類型,但是他們的返回值不同,區(qū)

    2024年04月22日
    瀏覽(56)
  • 【軟件測試】自動化測試selenium

    【軟件測試】自動化測試selenium

    目錄 一、什么是自動化測試 二、Selenium介紹 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API?? 1.1、元素定位 1.1.1、CSS選擇器 1.1.2、Xpath元素定位 1.1.3、面試題 ?1.2、操作測試對象 1.3、添加等待? 1.4、打印信息 ?1.5、瀏覽器的操作 1.6、鍵盤事件 1.7、鼠

    2024年01月17日
    瀏覽(27)
  • 【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    前言 使用場景 原理 環(huán)境準備 ?開發(fā) First Script WebDriver API 瀏覽器 元素 總結(jié) Selenium是一款可以自動化操作瀏覽器的開源項目,最初的目的是瀏覽器功能的自動化測試,但是隨著項目的發(fā)展,人們根據(jù)它的特性也用來做一些更多的有意思的功能而不僅僅是UI的自動化測試工具。

    2024年02月08日
    瀏覽(64)
  • 第八章 軟件測試自動化

    通過本章的學習,了解自動化測試應考慮的各種因素及如何衡量自動化測試成本,掌握自動化測試和手工測試的優(yōu)缺點,能正確選擇軟件測試策略,了解測試工 具的分類和使用目的,熟悉常用的測試工具,了解自動化測試的過程。 (一)自動化測試概述(一般) 理解:自動

    2024年02月08日
    瀏覽(26)
  • 軟件測試之單元測試自動化入門基礎(chǔ)

    軟件測試之單元測試自動化入門基礎(chǔ)

    所謂的單元測試(Unit Test)是根據(jù)特定的輸入數(shù)據(jù),針對程序代碼中的最小實體單元的輸入輸出的正確性進行驗證測試的過程。所謂的最小實體單元就是組織項目代碼的最基本代碼結(jié)構(gòu): 函數(shù),類,模塊 等。在Python中比較知名的單元測試模塊: unittest pytest doctest nose 所謂的測試

    2024年02月03日
    瀏覽(30)
  • 軟件測試 自動化測試selenium篇(一)

    軟件測試 自動化測試selenium篇(一)

    目錄 一、什么是自動化測試 ?單元測試 ?接口自動化 ?UI自動化 二、如何實施自動化測試 ?自動化測試需要了解的技能 三、selenium介紹 webdriver的工作原理: ?四、Selenium+Java環(huán)境搭建 ? ? ? ? ? ? ? ? ? ?驗證環(huán)境是否搭建成功 創(chuàng)建java項目,添加pom文件中添加依賴 常見問題

    2024年02月07日
    瀏覽(37)
  • 軟件測試 自動化測試selenium API

    軟件測試 自動化測試selenium API

    1.1.1 CSS 選擇器定位元素 CSS 選擇器 就是一個語法 瀏覽器 (ctrl + f)可以進行選擇 類選擇器:.class值(.s_ipt) id 選擇器:#id值(#kw) 父類選擇器 子類選擇器:父類選擇器表達式 子類選擇器表達式 標簽選擇器:標簽名(form) 1.1.2 XPath 定位元素 XPath 是一種在XML 文檔中定位元

    2024年04月28日
    瀏覽(34)
  • 【軟件測試】python+selenium自動化測試

    【軟件測試】python+selenium自動化測試

    一、什么是自動化測試 自動化測試指軟件測試的自動化,在預設(shè)狀態(tài)下運行應用程序或者系統(tǒng),預設(shè)條件包括正常和異常,最 后評估運行結(jié)果。將人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的過程。 單元測試 java的單元測試框架是Junit,在這里不再贅述。 接口自動化 接口測試就是

    2023年04月09日
    瀏覽(34)
  • 【軟件測試】基于博客系統(tǒng)的自動化測試

    【軟件測試】基于博客系統(tǒng)的自動化測試

    目錄 1.我的博客系統(tǒng)鏈接 2.使用selenium對博客系統(tǒng)進行自動化測試 1.引入依賴 2.創(chuàng)建公共類 3.創(chuàng)建測試套件類 4.測試登陸界面 5. 測試博客列表頁 6.測試寫博客頁面 7.測試刪除博客 8.最終運行結(jié)果 用戶登錄 創(chuàng)建一個maven項目,在pop.xml中引入以下依賴 因為對每一個頁面進行測試

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包