Selenium的实现原理,一篇文章讲透彻!
Selenium的實(shí)現(xiàn)原理
對(duì)于Selenium而言,V1.0和V2.0版本的技術(shù)方案是截然不同的,V1.0 的核心是Selenium RC,而V2.0 的和核心是WebDriver,可以說(shuō)完全是兩個(gè)東西。
Selenium 1.0的工作原理
Selenium 1.0又稱Selenium RC,其中RC是Remote Control的縮寫(xiě)。Selenium RC利用的原理是:JavaScript代碼可以很方便地獲取頁(yè)面上的renew元素并執(zhí)行各種操作。
但因?yàn)椤巴凑摺?#xff0c;所以要想在測(cè)試用例運(yùn)行中的瀏覽器中,注入JavaScript代碼從而實(shí)現(xiàn)自動(dòng)化的Web操作,Selenium RC就必須“欺騙”被測(cè)站點(diǎn),讓它誤以為被注入的代碼是同源的。
如何實(shí)現(xiàn)欺騙呢?這就是引入Selenium RC Server的根本原因,其中的Http Proxy模塊就是用來(lái)“欺騙”瀏覽器的。Selenium RC的基本模塊如下:
Selenium RC Server,主要包括Selenium Core,Http Proxy和Launcher三部分:
? Selenium Core,是被注入到瀏覽器頁(yè)面的JavaScript函數(shù)集合,用來(lái)實(shí)現(xiàn)界面元素的識(shí)別和操作;
? Http Proxy,作為代理服務(wù)器修改JavaScript的源,以達(dá)到“欺騙”被測(cè)站點(diǎn)的目的;
? Launcher,用來(lái)啟動(dòng)瀏覽器完成Selenium Core的注入和瀏覽器代碼的設(shè)置。
Selenium RC的執(zhí)行流程如下圖:
如果對(duì)軟件測(cè)試有興趣,想了解更多的測(cè)試知識(shí),解決測(cè)試問(wèn)題,以及入門(mén)指導(dǎo),幫你解決測(cè)試中遇到的困惑,我們這里有技術(shù)高手。如果你正在找工作或者剛剛學(xué)校出來(lái),又或者已經(jīng)工作但是經(jīng)常覺(jué)得難點(diǎn)很多,覺(jué)得自己測(cè)試方面學(xué)的不夠精想要繼續(xù)學(xué)習(xí)的,想轉(zhuǎn)行怕學(xué)不會(huì)的, 都可以加入我們
,群內(nèi)可領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口、框架搭建學(xué)習(xí)資料!
Client Libraries,是測(cè)試用例代碼向Selenium RC Server發(fā)送Http請(qǐng)求的接口,支持多種語(yǔ)言,包括Java、C#和Ruby等。
Selenium 2.0的工作原理
Selenium 2.0又稱Selenium WebDriver,它利用的原理是:使用瀏覽器原生的WebDriver實(shí)現(xiàn)頁(yè)面操作。它的實(shí)現(xiàn)方式完全不同于Selenium 1.0。
Selenium WebDriver是典型的Server-Client模式,Server端就是Remote Server。Selenium WebDriver執(zhí)行流程如下圖所示:
如果對(duì)軟件測(cè)試有興趣,想了解更多的測(cè)試知識(shí),解決測(cè)試問(wèn)題,以及入門(mén)指導(dǎo),幫你解決測(cè)試中遇到的困惑,我們這里有技術(shù)高手。如果你正在找工作或者剛剛學(xué)校出來(lái),又或者已經(jīng)工作但是經(jīng)常覺(jué)得難點(diǎn)很多,覺(jué)得自己測(cè)試方面學(xué)的不夠精想要繼續(xù)學(xué)習(xí)的,想轉(zhuǎn)行怕學(xué)不會(huì)的, 都可以加入我們
,群內(nèi)可領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口、框架搭建學(xué)習(xí)資料!
總結(jié)
以上是生活随笔為你收集整理的Selenium的实现原理,一篇文章讲透彻!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 这几个免费的PPT素材网站,你一定要知道
- 下一篇: esp32 s3 USB OTG Ard