selenium webdriver实现的原理及流程
用Selenium實(shí)現(xiàn)自動(dòng)化,主要需要三個(gè)東西:
1.自動(dòng)化測(cè)試代碼:自動(dòng)化測(cè)試代碼發(fā)送請(qǐng)求給瀏覽器的驅(qū)動(dòng)(比如火狐驅(qū)動(dòng)、谷歌驅(qū)動(dòng))
2.瀏覽器驅(qū)動(dòng):它來解析這些自動(dòng)化測(cè)試的代碼,解析后把它們發(fā)送給瀏覽器
3.瀏覽器:執(zhí)行瀏覽器驅(qū)動(dòng)發(fā)來的指令,并最終完成工程師想要的操作。
測(cè)試代碼中包含了各種期望的對(duì)瀏覽器界面的操作,例如點(diǎn)擊。測(cè)試代碼通過給Webdriver發(fā)送指令,讓W(xué)ebdriver知道想要做的操作,而Webdriver根據(jù)這些操作在瀏覽器界面上進(jìn)行控制,由此測(cè)試代碼達(dá)到了在瀏覽器界面上操作的目的。
Selenium腳本執(zhí)行時(shí)后端實(shí)現(xiàn)的流程:
1.對(duì)于每一條Selenium腳本,一個(gè)http請(qǐng)求會(huì)被創(chuàng)建并且發(fā)送給瀏覽器的驅(qū)動(dòng)
2.瀏覽器驅(qū)動(dòng)中包含了一個(gè)HTTP Server,用來接收這些http請(qǐng)求
3.HTTP Server接收到請(qǐng)求后根據(jù)請(qǐng)求來具體操控對(duì)應(yīng)的瀏覽器
4.瀏覽器執(zhí)行具體的測(cè)試步驟
5.瀏覽器將步驟執(zhí)行結(jié)果返回給HTTP Server
6.HTTP Server又將結(jié)果返回給Selenium的腳本,如果是錯(cuò)誤的http代碼我們就會(huì)在控制臺(tái)看到對(duì)應(yīng)的報(bào)錯(cuò)信息。
WebDriver基于的協(xié)議:JSON Wire protocol
JSON Wire protocol是在http協(xié)議基礎(chǔ)上,對(duì)http請(qǐng)求及響應(yīng)的body部分的數(shù)據(jù)的進(jìn)一步規(guī)范。body部分主要傳送具體的數(shù)據(jù),在WebDriver中這些數(shù)據(jù)都是以JSON的形式存在并進(jìn)行傳送的,這就是JSON Wire protocol。所以在Client和Server之間,只要是基于JSON Wire Protocol來傳遞數(shù)據(jù),就與具體的腳本語言無關(guān)了,這樣同一個(gè)瀏覽器的驅(qū)動(dòng)就即可以處理Java語言的腳本,也可以處理Python語言的腳本了。
總結(jié)
以上是生活随笔為你收集整理的selenium webdriver实现的原理及流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket请求ip遇到的问题
- 下一篇: 一国之主图