Selenium是一款可以自動(dòng)化操作瀏覽器的開(kāi)源項(xiàng)目,最初的目的是瀏覽器功能的自動(dòng)化測(cè)試,但是隨著項(xiàng)目的發(fā)展,人們根據(jù)它的特性也用來(lái)做一些更多的有意思的功能而不僅僅是UI的自動(dòng)化測(cè)試工具。就像Selenium官方網(wǎng)站上描述的那樣,Selenium可以自動(dòng)化操縱瀏覽器。完了!你想用它的能力做什么事情完全取決于你。
針對(duì)瀏覽器的自動(dòng)化測(cè)試有三個(gè)場(chǎng)景:
早期的Selenium目的是實(shí)現(xiàn)web應(yīng)用的UI自動(dòng)化測(cè)試,實(shí)現(xiàn)方式是通過(guò)三方的服務(wù)器注入js達(dá)到控制瀏覽器行為的目的,核心的組件叫Selenium-RC(Remote Control) 包含兩個(gè)部分:
架構(gòu)如下
這種架構(gòu)被證明是復(fù)雜的,而且有諸多限制,比如:Selenium RC 的局限性導(dǎo)致了新的自動(dòng)化框架 Selenium WebDriver 的開(kāi)發(fā)。在 2006 年引入 WebDriver 后,RC 中出現(xiàn)的復(fù)雜問(wèn)題可以得到解決和解決 Selenium 結(jié)合WebDriver簡(jiǎn)化了瀏覽器的控制行為,將中間環(huán)節(jié)的服務(wù)器去掉,直接在系統(tǒng)層級(jí)本地化控制瀏覽器,優(yōu)化后的架構(gòu)如下:
如果你不想在編碼層實(shí)現(xiàn)你的功能,可以下載Selenium IDE插件,支持錄制回放,過(guò)程腳本導(dǎo)出。
如果需要通過(guò)代碼實(shí)現(xiàn)更多靈活自定義功能,建議使用python,環(huán)境準(zhǔn)備 python3、pip3
selenium
install browser drivers 設(shè)置您的系統(tǒng)以允許瀏覽器自動(dòng)化。通過(guò) WebDriver,Selenium 支持市場(chǎng)上所有主流瀏覽器,例如 Chrome/Chromium、Firefox、Internet Explorer、Edge、Opera 和 Safari。在可能的情況下,WebDriver 使用瀏覽器的內(nèi)置自動(dòng)化支持來(lái)驅(qū)動(dòng)瀏覽器
通過(guò)webdriver實(shí)現(xiàn)控制瀏覽器自動(dòng)訪問(wèn)功能
webDriver操縱瀏覽器的API大致可以分為兩個(gè)部分,控制瀏覽器行為的比如,打開(kāi)、關(guān)閉、前進(jìn)、后退、刷新等和控制頁(yè)面元素的如,點(diǎn)擊、輸入、獲取元素內(nèi)容等
獲取瀏覽器信息
導(dǎo)航
彈框
Alert、Confirm、Prompt功能類似Cookies可以支持cookies的添加刪除操作
Frames支持針對(duì)Frames內(nèi)元素的獲取及操作WindowsWebDriver 不區(qū)分窗口和選項(xiàng)卡。如果您的站點(diǎn)打開(kāi)一個(gè)新選項(xiàng)卡或窗口,Selenium 將允許您使用窗口句柄來(lái)處理它。每個(gè)窗口都有一個(gè)唯一標(biāo)識(shí)符,該標(biāo)識(shí)符在單個(gè)會(huì)話中保持不變。您可以使用以下方法獲取當(dāng)前窗口的窗口句柄:
識(shí)別和使用DOM中的元素 大多數(shù)人的 Selenium 代碼大部分都涉及使用 Web 元素。這部分功能和寫(xiě)前端代碼的document.getElementById作用差不多,思想比較簡(jiǎn)單,就是找到頁(yè)面中的元素然后執(zhí)行模擬用戶行為的操作 支持絕對(duì)定位和相對(duì)定位的策略,針對(duì)復(fù)雜頁(yè)面ID,Tag,Class不好定位的情況可以使用xPath方式,非常靈活,其實(shí)也不用死記硬背,當(dāng)某元素不好定位時(shí),可以去官網(wǎng)查API的方式去實(shí)現(xiàn)相對(duì)定位
傳統(tǒng)定位
交互
5種基本命令:
獲取元素信息
本次分享介紹了Selenium使用場(chǎng)景,簡(jiǎn)單原理和一些的基礎(chǔ)用法。并列舉了一個(gè)小例子。掌握以上內(nèi)容,你已經(jīng)可以實(shí)現(xiàn)基本的UI自動(dòng)化測(cè)試了。另外可以做一些爬蟲(chóng)和自動(dòng)化操縱瀏覽器的工具需求就需要根據(jù)個(gè)人場(chǎng)景化定制了,只要你有“懶”的天性,相信一定會(huì)找到挺多有意思場(chǎng)景使用去使用它。
https://www.selenium.dev/https://www.browserstack.com/guide/selenium-rc-tutorial
聯(lián)系客服