先自我介紹一下,小編浙江大學(xué)畢業(yè),去過華為、字節(jié)跳動(dòng)等大廠,目前阿里P7
深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年最新軟件測(cè)試全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,涵蓋了95%以上軟件測(cè)試知識(shí)點(diǎn),真正體系化!
由于文件比較多,這里只是將部分目錄截圖出來(lái),全套包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、大綱路線、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你需要這些資料,可以添加V獲?。簐ip1024b (備注軟件測(cè)試)
正文
input.clear() # 清空搜索框的文字
time.sleep(2)
input.send_keys(“iPad”) # 在搜索框輸入iPad
button = browser.find_element_by_class_name(“btn-search”) # 獲取點(diǎn)擊按鈕
button.click() # 點(diǎn)擊搜索
動(dòng)作鏈#
from selenium import webdriver
from selenium.webdriver import ActionChains # 引入動(dòng)作鏈
browser = webdriver.Chrome()
url = “https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable”
browser.get(url)
browser.switch_to.frame(“iframeResult”) # 切換到元素所在的frame[框架]
“”"
可以傳入id、name、index以及selenium的WebElement對(duì)象,index從0開始
“”"
source = browser.find_element_by_css_selector(“#draggable”) # 找到被拖拽對(duì)象
target = browser.find_element_by_css_selector(“#droppable”) # 找到目標(biāo)
actions = ActionChains(browser) # 聲明actions對(duì)象
actions.drag_and_drop(source,target) # 拖拽元素的起點(diǎn)和終點(diǎn)
actions.perform() # 執(zhí)行動(dòng)作
action.click_and_hold() # 點(diǎn)擊且長(zhǎng)按,更多方法查看官方文檔
執(zhí)行JavaScript代碼
from selenium import webdriver
browser = webdriver.Chrome()
url = “https://www.zhihu.com/explore”
browser.get(url)
browser.execute_script(“window.scrollTo(0,document.body.scrollHeight)”) # 將進(jìn)度條下拉到最底部
browser.execute_script(“alert(‘hello word’)”) # 彈出alert提示窗
獲取節(jié)點(diǎn)信息
from selenium import webdriver
browser = webdriver.Chrome()
url = “https://www.zhihu.com/explore”
browser.get(url)
“”"
WebElement常用屬性:
get_attribute 獲取屬性值
text 獲取文本值
id 獲取節(jié)點(diǎn)id
location 獲取節(jié)點(diǎn)在頁(yè)面中的相對(duì)位置
tag_name 獲取標(biāo)簽名稱
size 獲取節(jié)點(diǎn)大小(寬和高)
“”"
獲取屬性
logo = browser.find_element_by_id(“zh-top-link-logo”) # 獲取logo節(jié)點(diǎn)
print(logo) # 返回值為WebElement對(duì)象
logo_class = logo.get_attribute(“class”) # 獲取zh-top-link-logo節(jié)點(diǎn)的class屬性值
print(logo_class)
獲取文本值
text_Ele = browser.find_element_by_css_selector(“.question_link”) # 通過css選擇器獲取文本內(nèi)容所在的標(biāo)簽
text = text_Ele.text # 取出標(biāo)簽內(nèi)的文本內(nèi)容
print(text)
獲取ID 位置 標(biāo)簽名和大小
test = browser.find_element_by_class_name(“zu-top-add-question”)
print(test.id) # 0bfe7ae6-ebd9-499a-8f4e-35ae34776687
print(test.location) # {‘x’: 759, ‘y’: 7}
print(test.tag_name) # button
print(test.size) # {‘height’: 32, ‘width’: 66}
切換frame
from selenium import webdriver
browser = webdriver.Chrome()
url = “https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable”
browser.get(url)
“”"
網(wǎng)頁(yè)中有一種節(jié)點(diǎn)叫做iframe,也就是子Frame,相當(dāng)于頁(yè)面的子頁(yè)面,
他的結(jié)構(gòu)和外部網(wǎng)頁(yè)的結(jié)構(gòu)完全一致。
selenium打開頁(yè)面后,他默認(rèn)是在父級(jí)Frame里面操作,
而此時(shí)如果頁(yè)面中還有子Frame,他是不能獲取到子Frame里面的節(jié)點(diǎn)的,
這時(shí)候就需要使用switch_to.frame()方法來(lái)切換Frame。
“”"
browser.switch_to.frame(“iframeResult”)
logo = browser.find_elements_by_class_name(“l(fā)ogo”)
print(logo)
[<selenium.webdriver.remote.webelement.WebElement (session=“1ccb11403013c749ce9fceda50a00975”, element=“88e5924e-d655-44c3-a905-8af1947b9d86”)>]
延時(shí)等待
---------------------------隱式等待-------------------------
from selenium import webdriver
browser = webdriver.Chrome()
隱式等待
browser.implicitly_wait(2) # 設(shè)定等待時(shí)間
url = “https://www.zhihu.com/explore”
browser.get(url)
input = browser.find_element_by_class_name(“aaa”)
print(input)
報(bào)錯(cuò)信息
“”"
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“css selector”,“selector”:“.aaa”}
(Session info: chrome=75.0.3770.142)
“”"
“”"
如果selenium沒有在DOM中找到節(jié)點(diǎn),將繼續(xù)等待,超出設(shè)定事件后,則拋出找不到節(jié)點(diǎn)的異常。
當(dāng)查找節(jié)點(diǎn)而節(jié)點(diǎn)并沒有立即出現(xiàn)的時(shí)候,隱式等待將等待一段時(shí)間在查找DOM,默認(rèn)時(shí)間是0
“”"
--------------------------顯式等待------------------------
顯示等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get(“https://www.taobao.com/”)
wait = WebDriverWait(browser,2)
input = wait.until(EC.presence_of_element_located((By.ID,“q”)))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,“.btn-search”)))
print(input,button)
等待條件
EC.presence_of_element_located 節(jié)點(diǎn)出現(xiàn)
EC.element_to_be_clickable 可點(diǎn)擊
更多等待條件查看260頁(yè)
“”"
引入WebDriverWait對(duì)象指定最長(zhǎng)等待時(shí)間,調(diào)用它的until方法,
傳入要等待的條件expected_conditions,比如這里傳入例如presence_of_element_located
這個(gè)條件,代表節(jié)點(diǎn)出現(xiàn)的意思,其參數(shù)是節(jié)點(diǎn)的定位元組,也就是ID為q的搜索框。
這樣可以做到的效果就是,在10秒內(nèi)如果ID為q的節(jié)點(diǎn)(即搜索框)成功加載出來(lái),就返回該節(jié)點(diǎn),
如果10秒還沒有加載出來(lái),就拋出異常。
“”"
“”"
異常:
TimeoutException
“”"
“”"
指定要查找的節(jié)點(diǎn),然后指定一個(gè)最長(zhǎng)等待時(shí)間,如果在規(guī)定時(shí)間內(nèi)加載出來(lái)了這個(gè)節(jié)點(diǎn),
就返回查找的節(jié)點(diǎn),如果到了規(guī)定時(shí)間依然沒有加載出該節(jié)點(diǎn),則拋出【超時(shí)】異常
“”"
前進(jìn)和后退
import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(“https://www.baidu.com”)
browser.get(“https://www.taobao.com”)
browser.get(“https://www.jd.com”)
browser.back() # 后退
time.sleep(2)
browser.forward() # 前進(jìn)
browser.close() # 關(guān)閉瀏覽器
連續(xù)訪問三個(gè)頁(yè)面
cookies
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(“https://www.zhihu.com/explore”)
cookies = browser.get_cookies() # 獲取cookies
print(cookies)
browser.add_cookie({“name”:“name”,“domain”:“www.zhihu.com”,“vlue”:“germey”})
browser.delete_all_cookies() # 刪除所有cookies
選項(xiàng)卡管理
import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(“https://www.baidu.com”)
browser.execute_script(“window.open()”)
print(browser.window_handles)
[‘CDwindow-7106D94FF002752ADF198B986343E31D’, ‘CDwindow-B669BA9559DBB78D8D6EC9C5AA699C40’]
browser.switch_to.window(browser.window_handles[1])
browser.get(“https://www.taobao.com”)
time.sleep(1)
browser.switch_to.window(browser.window_handles[0])
browser.get(“https://jd.com”)
“”"
1、打開百度網(wǎng)頁(yè)
2、新開一個(gè)選項(xiàng)卡,調(diào)用execute_script()方法傳入JavaScript語(yǔ)法window.open()
3、切換到新打開的選項(xiàng)卡,調(diào)用window_handles屬性獲取當(dāng)前開啟的所有選項(xiàng)卡,返回的是選項(xiàng)卡的代號(hào)列表,
要想切換選項(xiàng)卡只需要調(diào)用switch_to.window()方法,這里我們將第二個(gè)選項(xiàng)卡代號(hào)傳入,
即跳轉(zhuǎn)到第二個(gè)選項(xiàng)卡,在第二個(gè)選項(xiàng)卡里打開新頁(yè)面https://www.taobao.com,然后切換回第一個(gè)選項(xiàng)卡打開jd頁(yè)面
“”"
異常處理
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(“https://www.baidu.com”)
try:
browser.find_element_by_id(“hello”)
except Exception as e:
print(e) # 打印錯(cuò)誤信息 Exception捕獲所有錯(cuò)誤信息賦給e
finally:
browser.close()
“”"
在使用selenium的過程中,難免遇到一些異常,例如超時(shí)、節(jié)點(diǎn)未找到錯(cuò)誤,
一旦出現(xiàn)此類錯(cuò)誤,程序便不會(huì)在繼續(xù)運(yùn)行了,這里我們使用try except語(yǔ)句來(lái)捕獲各種異常
“”"
選項(xiàng)卡切換
import time
from selenium import webdriver
from selenium.webdriver import ChromeOptions
option = ChromeOptions()
browser = webdriver.Chrome(executable_path=‘D:\chromedriver.exe’,options=option) # 聲明一個(gè)瀏覽器對(duì)象
option.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])
browser.get(“https://www.baidu.com”) # 打開Chrome
input = browser.find_element_by_id(“kw”) # 通過id定位到input框
input.send_keys(“愛奇藝”) # 在輸入框內(nèi)輸入python
browser.find_element_by_id(“su”).click()
time.sleep(3)
網(wǎng)上學(xué)習(xí)資料一大堆,但如果學(xué)到的知識(shí)不成體系,遇到問題時(shí)只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注軟件測(cè)試)
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
入框內(nèi)輸入python
browser.find_element_by_id(“su”).click()
time.sleep(3)
網(wǎng)上學(xué)習(xí)資料一大堆,但如果學(xué)到的知識(shí)不成體系,遇到問題時(shí)只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注軟件測(cè)試)
[外鏈圖片轉(zhuǎn)存中…(img-vEEaH9TL-1713159288778)]文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-857376.html
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-857376.html
到了這里,關(guān)于Selenium瀏覽器自動(dòng)化測(cè)試框架詳解_selenium 測(cè)試框架介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!