版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Selenium1Selenium一一.Selenium是什Selenium是ThroughtWorks公司一個(gè)強(qiáng)大的開源Web功能測(cè)試工具系列,本系列4款:1.SeleniumCore:支持DHTML的測(cè)試案例(效果類似數(shù)據(jù)驅(qū)動(dòng)測(cè)試),它是SeleniumIDESeleniumRC的引擎。2.SeleniumIDE:FireFoxSeleniumRC:SeleniumRemoteControl。后續(xù)的系列文章我會(huì)主要針對(duì)SeleniumRC展開介紹。SeleniumGrid:允許同時(shí)并行地、在不同的環(huán)境上運(yùn)行多個(gè)測(cè)試任務(wù),極大地加快Web應(yīng)用的功能測(cè)試。二.選擇合適的Selenium工既然Selenium4款這么多,那到底如何選擇呢??我從"Selenium官網(wǎng)"Selenium SeleniumCore僅需要安否否是否支持是是是是是是否是需要否是否否將保存到磁是是否是僅僅僅這里沒有介這里沒有介紹SeleniumGrid,但介紹了另外一個(gè)SeleniumCoreHTA,SeleniumCoreHTA其實(shí)是SeleniumCore的額外模式,你只要SeleniumCore配置稍加修改,即為HTA模式,SeleniumCoreHTA可以在IE最高安全等級(jí)( 這意味著它僅能在IE下工作,由于限制較大,下面將排除對(duì)SeleniumCoreHTA的瀏覽器支持(1).SeleniumIDE僅可以在Firefox(2).SeleniumRemoteControlsafari等N(3).SeleniumCore支持的瀏覽器是最廣的,這點(diǎn)和它的實(shí)現(xiàn)有關(guān)。作為IDERC的引擎,SeleniumCore需 安裝:是否需要在被 這里只有SeleniumCore需要,這是出于同源策略的原因。這也是SeleniumCore一個(gè)很大的限制,試問,如果你要測(cè)試 上裝一個(gè)SeleniumCore,那是多搞笑的一件事。而SeleniumIDE和SeleniumCoreHTA不會(huì)被同源策略所限制,因?yàn)樗麄儗?duì)瀏SeleniumRC提供一個(gè)代碼服務(wù)器來保證SeleniumJS文件看似來自相同的遠(yuǎn) 支持這里不說了,都支持。SeleniumRC在“是”后面加*因?yàn)樗窃谧罱姹局С值模枰狫ava:準(zhǔn)確的說是需要這項(xiàng)只有SeleniumRC需要,上面2中所說的“ 服務(wù)器”是一個(gè)Java程序, 保存到磁只有SeleniumCore不能將任何寫到磁盤上(因?yàn)樗怯胘avascript寫的,它不允許向磁盤寫數(shù)據(jù)),其解決方案是當(dāng)然你可以將發(fā)送到另外一臺(tái)服務(wù)器保存。這也是SeleniumCore的一大限制。多語言支(1).SeleniumIDE僅支持Selenium(3).SeleniumCore也是僅支持Selenium 工具(如:FirefoxIDE,SeleniumCore等),不懂程序的測(cè)試人員它的缺點(diǎn)是:Selenese有一些嚴(yán)格的限制:它沒有條件(沒有"if"表達(dá)式),并且它 (1).SeleniumIDE支持并且只支持Firefox瀏覽器,支持的瀏覽器太少,而依附于Firefox也不便于日后開展自動(dòng)化測(cè)試,但是,它的錄制快捷好用!并且有代碼轉(zhuǎn)換功能,可以把Selenium語言測(cè)試案例轉(zhuǎn)為C#,Java等語言的測(cè)試案例,我建議使用SeleniumIDE+FireBug進(jìn) 再調(diào)用SeleniumRC運(yùn) (2).SeleniumCore,它的優(yōu)點(diǎn)是編寫測(cè)試案例簡(jiǎn)單,并且支持絕大多數(shù)的瀏覽器,但缺點(diǎn)也同樣明顯,SeleniumCore需要 安裝,Selenese語言也限制了復(fù)試工具不可能100%滿足你測(cè)試需求的,當(dāng)它不能滿足你測(cè)試需求時(shí)候,它必須有一(3).SeleniumRC是我推薦使用的工具,它支持很多瀏覽器,可以使用C#,Java SeleniumRC作為默認(rèn)的測(cè)試工具。Selenium2XPath在編寫Selenium案例時(shí),少不免是要用到XPath的,現(xiàn)在外面關(guān)于XPath使用的參考資料很多,下面我直接轉(zhuǎn)一篇關(guān)于XPath使用的文檔。如果對(duì)XPath不熟悉請(qǐng)參考 搜索關(guān)于XPath的資料,因?yàn)橄旅娴膬?nèi)容已經(jīng)足夠你寫測(cè)試時(shí)使用,如果你已熟悉XPath,本章大可忽略跳過。xpath的語法 自 XPath是XML的查詢語言,和SQL的角色很類似。以下面XML<?xmlversion="1.0"encoding="ISO-8859-<cd<title>Empire >Bob <cd<title>Hideyour >Bonnie <cd<title>Greatest >Dolly 定位節(jié) 方式。不過XPath是一種模式(Pattern),可以選出XML中,路徑符合某個(gè)模式的所有節(jié)點(diǎn)出來。例如要選catalog的cd中所有price元素可以用:如果XPath的開頭是一個(gè)斜線(/)代表這是絕對(duì)路徑。如果開頭是兩個(gè)斜線(//)來。以下的語選出文件中所有叫做cd的元素(在樹中的任何層級(jí)都會(huì)被選來選擇未知的元以下的語選出所有catalog的子元素中,包含有price作為子元素的元素以下的語選出有兩層父節(jié)點(diǎn),叫做price的所有元素選擇分使用中括號(hào)可以選擇分支。以下的語法從catalog的子元素中取出第一個(gè)叫做cd以下語法選擇catalog中的最后一個(gè)cd元素:(XPathjfirst()這種函式喔,用上例的[1]就可以取出第一個(gè)元素。以下語法選出含有price子元素的所有/catalog/cd以下語法選出price10.90的所有/catalog/cd以下語法選出price10.90的所有/catalog/cd元素的price選擇一個(gè)以上的路/catalog/cd/title|選擇所有title以及元//title|選擇所有title以及以及price元//title|//|選擇屬在XPath中,除了選擇元素以外,也可以選擇屬性。屬性都是以@開頭。例如選擇文件中所有叫做country的屬性。選擇所有含有country這個(gè)屬性的cd以下語法選擇出含有屬性的所有cd以下語法選擇出country屬性值為UK的cdSelenium3SeleniumAPI大家在編寫測(cè)試案例想查閱大家在編寫測(cè)試案例想查閱SeleniumAPI(注:這里API版本比較老,新版本的Selenium的API在這里不一定能找到。SeleniumAPI說明文檔)Commands(命令校驗(yàn)是否有產(chǎn)生正確Element指定HTML中的某元用于模式匹11ElementLocators元)idlocator指定HTML中的唯一id的元namelocator指定HTMLname的元素中的第一個(gè)元identifierlocator首先查找HTMLid的元素,若不在,查找第一個(gè)該name的元domlocator用JavaScript表達(dá)式來定位HTML中的元素,注意必須以 "開例如 xpathlocatorXPath表達(dá)式來定位HTML中的元素,必須注意以"http://"開例如xpath=//img[@alt='Theimagealtlinklocator用linkHTML中的連接或錨元例如例如link=ThelinklocatorWithoutalocatorprefixSelenium如果以."domlocator"http://"開頭,則默認(rèn)使用xpathlocator,其余情況均認(rèn)作22StringMatchingPatterns符串glob模式,用通配符"*"代表任意長(zhǎng)度字符,"?"代表一個(gè)字正則表達(dá)式模式,用JavaScript正則表達(dá)式的形式匹配字符精確匹配模式,精確匹配整個(gè)字符串,不能用通配在沒有指定字符串匹配前序的時(shí)候,selenium默認(rèn)golb匹配33SelectOptionSpecifiersSelect例如:id=option10開始描述了用戶所會(huì)作出的操作Action種形式action和actionAndWait,action立即執(zhí)行,而actionAndWait會(huì)假設(shè)需要較長(zhǎng)時(shí)間才能得到該action的相響,而作出等待,open是會(huì)自動(dòng)處理等待時(shí)間。點(diǎn)擊連接,按鈕,復(fù)選和單如果點(diǎn)擊后需要等待響應(yīng),則用如果是需要經(jīng)過JavaScript的alert或 框后才能繼verify或assertSelenium在瀏覽器中打開URL,可以接受相對(duì)和絕對(duì)路徑兩種注意:該URL必須在與瀏覽器相同的安全限定范圍type(inputLocator,模擬人手的輸入過程,往指定的input中輸入也適合給復(fù)選和單選框賦寫其文本Johneselect(dropDownLocator,根據(jù)optionSpecifier選項(xiàng)選擇器來選擇一個(gè)下拉菜單選如果有多于一個(gè)選擇器的時(shí)候,如在用通配符模式,如**或者超過一個(gè)選項(xiàng)有相同的文本或值,則會(huì)選擇第一個(gè)匹配到的值label=Auslian模擬點(diǎn)擊瀏覽器的后退按模擬點(diǎn)擊瀏覽器關(guān)閉-選擇一個(gè)彈出窗-當(dāng)選中那個(gè),所令將會(huì)轉(zhuǎn)移到那窗口中執(zhí)-根據(jù)指定時(shí)間暫停執(zhí)-常用在或等待服務(wù)器段響應(yīng)ee模擬頁面元被激活的處理動(dòng)-在限定時(shí)間內(nèi),等待一段JavaScript代碼返回true值,超時(shí)則停 waitForValue(inputLocator,等待某input(如hiddeninput)被賦予某值會(huì)輪流檢測(cè)該值,所以要注意如果該值長(zhǎng)時(shí)間一直不賦予input該值的話,可能會(huì)導(dǎo)致阻dstore(valueToStore,保存一個(gè)值到變量里該值可以由自其他變量組合而成或通過JavaScript表達(dá)式賦值給變MrJohn$.{title}$.{firstname}把指定的把指定的inputstoreText,storeText,storeText(elementLocator,把指定元素的文本值賦予給變把指定元素的屬性的值賦予給chooseCancel..,chooseCancel..,-當(dāng)下次JavaScript彈出 框的時(shí)候,讓selenium選--true,如手動(dòng)選擇OK--如果已經(jīng)運(yùn)行過該命令,當(dāng)下一次又有框出時(shí),也會(huì)同樣地再次選擇-在下次JavaScript彈出prompt提示框時(shí),賦予anweerString的值,并選擇確允許用戶去檢查當(dāng)前狀態(tài)。兩AssertVerify,當(dāng)失敗,則退出測(cè)試;當(dāng)Verify失敗,測(cè)試會(huì)繼續(xù)運(yùn)assertLocation,assertTitleassertLocation,assertTitle判斷當(dāng)前是在正確的ene檢查當(dāng)前頁面的titleMyMyassertValue(inputLocator,檢查input的對(duì)于checkbox或radio,如果已選擇,則值為"on",反之為JohneJohnassertSelected,assertSelectedOptionsassertSelected,assertSelectedOptions檢查select的下拉菜單中選中的選型是否和選擇選項(xiàng)器)的選項(xiàng)相JohnddassertSelectOptions(selectLocator,assertSelectOptions(selectLocator,檢查下拉菜單中的選項(xiàng)的文本是否和optionLabelList相optionLabelList是以逗號(hào)分割的一個(gè)字 s檢查指定元素的只對(duì)有包含文本的元素生對(duì)于Mozilla類型的瀏覽器,用textContent取元素的文本,對(duì)IE類型的瀏覽器innerText取元素ltl檢查在當(dāng)前給用戶顯示的頁面上是否有出現(xiàn)指定的文YouarenowloggedtYouarenowlogged檢查當(dāng)前指定元素的屬性的talt-alt-assertTextPresent,etc.assertTextPresent,etc. asserasserassertTable(cellAddress,檢查table里的某個(gè)cell中的cellAddress的語法是tableName.row.column,注意行列序號(hào)都是0開始deassertVisible,nonVisibleassertVisible,nonVisible檢查指定的元素是否可視隱藏一個(gè)元素可以用設(shè)置css的'visibility'屬性為'hidden',也可以 Editable,non-editableEditable,non-editable檢查指定的input是否可以編e檢查指定的input是否不可以編-檢查JavaScript是否有產(chǎn)生帶message的框alert產(chǎn)生的順序必須與檢查的順序一檢查alert時(shí)會(huì)產(chǎn)生與手動(dòng)點(diǎn)擊'OK'按鈕一樣的效果。如果一個(gè)alert產(chǎn)生了,而你卻沒有去檢查它,selenium會(huì)在下個(gè)action中-注意:Selenium不支持JavaScript在 時(shí)調(diào)alert();在這種情況下,Selenium需要你自己手動(dòng)來點(diǎn)擊檢查JavaScript是否有產(chǎn)生帶message的框和alert情況一樣 框也必須在它們產(chǎn)生的候進(jìn)行檢默認(rèn)情況下,Selenium會(huì)讓confirm()返回true,相當(dāng)于手動(dòng)擊Ok按鈕的效果。你能夠通過命令讓confirm()返回false.同樣地,如果一個(gè) 框現(xiàn)了,但你卻沒有檢查的話,Selenium將會(huì)在下個(gè)action中報(bào)注意:在Selenium的環(huán)境下 框框?qū)⒉粫?huì)再現(xiàn)彈出顯 注意:Selenium不支持在 時(shí)調(diào)用框,在這種情況下,會(huì)出現(xiàn)顯示 框,并需要自己手動(dòng)點(diǎn)檢查JavaScript是否有產(chǎn)生帶指定message的 你檢查的prompt的順序 框產(chǎn)生的順序必須相必須在verifyPrompt之前調(diào)用answerOnNextPrompt命--框出現(xiàn)了但你卻沒有檢查,則Selenium個(gè)actionDelegateto參數(shù)和變量范圍由簡(jiǎn)單的賦值到JavaScript表達(dá)式賦Store,storeValuestoreText保存Selenium內(nèi)部是用一個(gè)叫storeVarsmap來保存變量名VariableVariableSubstitution提供了一個(gè)簡(jiǎn)單的方變量,語法$.{title}texFullnameis:你能用JavaScript來構(gòu)建任何你所需要的值這個(gè)參數(shù)javascript開頭,語法是javascript.{'withttailing'可以通過JavaScripttexSelenium4SeleniumIDE前前 ,SeleniumIDE是Firefox的一個(gè)插件,是可以進(jìn)換,所以SeleniumIDE+Firebug會(huì)成為你日后寫測(cè)試案例的兩大助手(IE用SeleniumCore+IEDevelperToolBar)Selenium::下面將演示Selenium的使用1.SeleniumIDE,F(xiàn)irebug2.Selenium 框上圖標(biāo)明了一些SeleniumIDE的主要功能。其中,由Command,Target,Value組成的表格就是 都是由一條一條的Action(行為)組成,而每個(gè)Action又由(Command,Target,Value)三者組成。Command就是上文《API參考手冊(cè)》提到的內(nèi)容,Target指的是Web中的某個(gè)對(duì)象,比如:文字,輸入框等等,如果選取對(duì)象呢?呵呵,這里就用到了XPath,不熟悉可以參考《XPath的使用》,而Value就是這個(gè)對(duì)象的值。的錄制及當(dāng)彈出上面的IDE窗口后,我們就可以開始Selenium的 紅色的圓點(diǎn),當(dāng)它下按時(shí)(如上圖)就表示IDE正在進(jìn)行 制的時(shí)候,直接操作Firefox瀏覽器窗口就可以了,IDE會(huì)自動(dòng)記錄你的操作的,下面 (4).進(jìn)入搜索結(jié)果頁面后,右鍵單擊第一條記錄(即:hyddd博客園),在右鍵彈出菜單中,單擊“VerifyTestPersenthyddd-博客園”。(5).單擊第一條記錄(即:進(jìn)入hyddd-博客園(6).Firefox彈出一個(gè)新TabOKSeleniumIDE錄制的結(jié)果吧上圖中,中間的表格就是錄制的結(jié)果,你可以按“運(yùn)行”重新回放看看,值得注意的是,在運(yùn)行時(shí),F(xiàn)irefox可能會(huì)認(rèn)為中最后一個(gè)操作(6)為非Firefox,具置是: bar->Tools->options->content->Blockpop-upWindow,你可以把鉤去掉或者在Exceptions里面添加相應(yīng)的 恩,到此為止 在運(yùn)行后,你會(huì)發(fā)現(xiàn)IDE表格的顏色發(fā)生了變化,運(yùn)行前,表格為白色,-博客園”判斷結(jié)果為false,這種情況案例還是會(huì)繼續(xù)執(zhí)行下去,判斷 SeleniumIDE其他的重要功本文開始時(shí)提到了,SeleniumIDE還有一個(gè)重要的功能就是把 SeleniumIDE可以把HTML的 轉(zhuǎn)為C#,JAVA等等其他語言的 們?nèi)蘸髮慡eleniumRC的測(cè)試案例提供了極大的方便。Selenium5SeleniumRC《Selenium簡(jiǎn)介》中講過,SeleniumRC如:C#,Python。在工作中,我傾向于是用Python這類動(dòng)態(tài)語言編寫測(cè)試案例,因?yàn)檫@樣的測(cè)試案例無需編譯:>,試想如果你有1000個(gè)測(cè)C#編寫示范例子。SeleniumRC:SeleniumRC測(cè)試案上一篇《SeleniumIDE的使用》中,提到了SeleniumIDE可以把錄制的轉(zhuǎn)為其他語言的,所以我繼續(xù)用上一篇的為例子,下面是把語言轉(zhuǎn)換為C#后的代碼:usingSystem;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Threading;usingusingnamespace{publicclass{privateISeleniumprivateStringBuilderpublicvoid{selenium=newDefaultSelenium("localhost",4444,"*chrome","verificationErrors=new}publicvoid{{}catch{//Ignoreerrorsifunabletoclose}Assert.AreEqual("",}publicvoid{selenium.Type("kw","hyddd");{Assert.IsTrue(selenium.IsTextPresent("hyddd博客園}catch(AssertionException{}}}}在這里,轉(zhuǎn)換后的使用了NUnit測(cè)試框架,為了簡(jiǎn)化,我用VS的TestProject替(當(dāng)然你也可以用ConsoleApplication測(cè)試TestDLL把selenium-dotnet--driver-1.0-beta-2 ThoughtWorks.Selenium.UnitTests.dll加入項(xiàng)目:usingSystem;usingusingusing.VisualStudio.TestTools.UnitTesting;usingSelenium;namespace{publicclass{publicvoid{//為Selenium測(cè)試服務(wù)器位置//4444為Selenium測(cè)試服務(wù)器端口//*iexplore為啟動(dòng)瀏覽器類型,我把它為了IE器 為源地址ISeleniumselenium=newDefaultSelenium("",4444,"*iexplore","selenium.Type("kw","hyddd");Assert.IsTrue(selenium.IsTextPresent("hyddd-博客園}}}Selenium打開cmd進(jìn)入selenium-server-1.0-beta- ,輸入-jarselenium-server.jar”(需要先JRE),Selenium運(yùn)試案(1).運(yùn)試案例(2).恩,案例Pass,如果案例失敗的話,ErrorMeesage說明失敗的(注意:和Firefox一樣,IE下也有彈出網(wǎng)頁功能,修改設(shè)置方法:Bar->Tools->PopupBlocker->TurnoffPopupBlocker,或者在PopupBlockerSettings面配置。)Selenium6--SeleniumRC工作原前一篇已經(jīng)比較詳細(xì)講述了如何使用前一篇已經(jīng)比較詳細(xì)講述了如何使用SeleniumRC進(jìn)行WebSeleniumRC是什么?一.SeleniumRC的組成SeleniumRC(1).SeleniumSeleniumServer負(fù)責(zé)控制瀏覽器行為,總的來說,SeleniumServer主要包括3 ,SeleniumCore。其中SeleniumCore是被SeleniumServer嵌入到瀏覽器頁面中的。其實(shí)SeleniumCore就是一堆JS函數(shù)的集合,就是通過這些JS函數(shù),我們才可以實(shí)現(xiàn)用程序?qū)g覽器進(jìn)行操作。寫測(cè)試案例時(shí)用來控制SeleniumServer Lib的接口向SeleniumServer發(fā)送Http請(qǐng)求,要求和SeleniumServer建立連接。為什么要通過發(fā)送Http請(qǐng)求控制SeleniumServer以看出,SeleniumServer是一個(gè)獨(dú)立的中間服務(wù)器(確切地說是服務(wù)器),它可以架設(shè)在其他機(jī)器上!所以測(cè)試案例通過發(fā)送HTTP請(qǐng)求去控制SeleniumServer(2).SeleniumServer的Launcher啟動(dòng)瀏覽器,把SeleniumCore加載入瀏覽器 設(shè)置為SeleniumServer的Http Lib的接口向SeleniumServer發(fā)送HttpSeleniumServer對(duì)請(qǐng)求進(jìn)行解析,然后通過 發(fā)送JS命令通(5).瀏覽器收到新的頁面請(qǐng)求信息(因?yàn)樵?4)中,SeleniumCore的操作可能的頁面請(qǐng)求),于是發(fā)送Http請(qǐng)求,請(qǐng)求新的Web頁面。由于SeleniumServer在啟動(dòng)瀏覽器時(shí)做了手腳,所以SeleniumServer新(6).SeleniumServer接收到瀏覽器的發(fā)送的Http請(qǐng)求后,自己重組Http取對(duì)應(yīng)的Web(7).SeleniumServer的把接收的Web為什么SeleniumRC中的SeleniumServer下一篇繼續(xù)介紹Selenium7--SeleniumRC工作原繼續(xù)前一篇的問題,為什繼續(xù)前一篇的問題,為什么SeleniumRC中的SeleniumServer需要以這種代理服務(wù)器的形式存在?其實(shí),這和瀏覽器的“同源策略”(TheSameOrigin 一.什么是同源策同源策略,它是由為什么需要同源策略,這里舉個(gè)例子假設(shè)現(xiàn)在沒有同源策略,會(huì)發(fā)生什么事情呢?大家知道,JavaScript可以做很多東 /修改網(wǎng)頁中某個(gè)值。恩,你現(xiàn)在打開了瀏覽器,在一個(gè)tab窗口中打 ,在另外一個(gè)tab窗口中打開了一個(gè) 的專門修改銀行信息的JavaScript,當(dāng)你 時(shí),你的銀行頁面就會(huì)被這個(gè)JavaScript并且執(zhí)行它比如說,瀏覽器的兩個(gè)tab頁中分別打開了ht /index.html和 /index.html,其中,JavaScript1和JavaScript3是屬 ,而JavaScript2是屬于谷歌的 ,當(dāng)瀏覽器的tab1要運(yùn)行一個(gè) 、協(xié)議、端口相同。所以,tab1只能執(zhí)行JavaScript1和 ,而JavaScript2不能執(zhí)行,從而防止其他網(wǎng)頁對(duì)本網(wǎng)頁的 二.SeleniumServer為什么以這 服務(wù)器形式存上面說了同源策略,那同源策略的SeleniumServer有什么關(guān)系呢??呵呵,上一篇,SeleniumCore是一堆JS函數(shù)的集合,它是我們操作瀏覽器的基礎(chǔ)。當(dāng)因?yàn)镾eleniumCore的JS的“源”是localhost,所以瀏覽器會(huì)SeleniumCore的JS在測(cè)試頁面上執(zhí)行,這就是為什么在本系列第一篇中說,如果只使用SeleniumCore進(jìn)試,需要把SeleniumCore安裝到服務(wù)器上。為了解決上面這個(gè)問題,SeleniumRC中的SeleniumServer就以 SeleniumServer 的形式存在,通過修改WebSite的源信息,從而達(dá)瀏覽器的目的,就這樣,SeleniumRC就輕松繞過了同源策略。在上圖中,瀏覽器會(huì)認(rèn)為WebSite和SeleniumCore來自同一個(gè)“源”---- Selenium8玩轉(zhuǎn)Selenium本篇主要是想更進(jìn)一步介紹本篇主要是想更進(jìn)一步介紹SeleniumServerSeleniumServer的交互模式在《第一在《第一個(gè)SeleniumRC測(cè)試案例》中,我們以命令“java-jarselenium-server.jar”啟動(dòng)了SeleniumServer,其實(shí)在啟動(dòng)SeleniumServer時(shí),我們還可以加上各種參數(shù)(具體的參數(shù)請(qǐng)參考《SeleniumRC服務(wù)器命令行參數(shù)列表》),而開啟SeleniumServer交互模式 令為“java-jarselenium-server.jar- ctive”。交互模式,是SeleniumServer提供的一種快速的測(cè)試方法,你可以對(duì)SeleniumServer輸入命令從而直接啟動(dòng)測(cè)試。.comSeleniumServer啟動(dòng)瀏覽器,以及創(chuàng)建Session(1).--->Requesting看過《深入了解SeleniumRC工作原理(1)》的應(yīng)該了解:我們所編寫的測(cè)試案例,其實(shí)是通過發(fā)送Http請(qǐng)求實(shí)現(xiàn)對(duì)SeleniumServer的控制,而測(cè)試案例所發(fā)送的請(qǐng)求就正是:--->Requesting,回車!看,SeleniumServer又為此產(chǎn)生了一個(gè)Session了!呵呵(2).這里,SeleniumServer為上面的請(qǐng)求隨機(jī)生成了一個(gè)SessionID:SeleniumServer,所以這里和上圖的SessionID不同,并且下文會(huì)繼續(xù)使用SessionID:9505f5f8c52041c28f4cdc1f8e59f769)。(3).如果一切正常,SeleniumServer最后會(huì)出現(xiàn)GetResultOk的字樣,并出現(xiàn)控制瀏覽 /webhp,輸入 噢,瀏覽器成 總結(jié)一下(1).在SeleniumServermand&1=Target&2=Value&SessionID=…SeleniumIDE的案例語句很像。"*iexplore","*iexplore",ISeleniumselenium=(2).在輸入命令后,SeleniumServer會(huì)發(fā)條Http請(qǐng)求給自己,請(qǐng)求的URL格式 ,我們完全可以用瀏覽器發(fā)送請(qǐng)求控制SeleniumServer 試(3).另外,sessionId是很重要的一個(gè)參數(shù),當(dāng)一個(gè)SeleniumServer同時(shí)運(yùn)行多個(gè)測(cè)試案例時(shí),SeleniumServer就是通過sessionId判斷到底該操作哪個(gè)瀏覽器窗口。而在下面的C#代碼中:ISeleniumselenium=newDefaultSelenium("",4444,"*iexplore","htt selenium就相當(dāng)于上文中的sessionId(4).在SeleniumServer啟動(dòng)一個(gè)Session“源”(原因見《深入了解SeleniumRC工作原理(2)》),在上面的代碼中httSeleniumSeleniumServer提示說;如果測(cè)試案例是運(yùn)行在*iehta或者*chrome上,或者改變SeleniumServer的運(yùn)行模式為 injectionmode即可避免問題出現(xiàn)。恩,在這里,我不得不承認(rèn)之前在《深入了解SeleniumRC工作原理(1)》中,為其實(shí),SeleniumServer2就可能會(huì)出現(xiàn)各種問題,故此SeleniumServer我們?cè)趩?dòng)Session時(shí),定義了源為中,我們打開的卻是(1).HeightenedPrivileges現(xiàn)在SeleniumServer啟動(dòng)的默認(rèn)模式為:HeightenedPrivilegesBrowsers。如 Injection模式,可以加參數(shù)“- 《深入了解SeleniumRC工作原理(1)》中介紹SeleniumRC與Testcase關(guān)系, Injection的工作模式,因?yàn)槲覀€(gè)人認(rèn)為 Injection模式作介紹。在這里我補(bǔ)充說明一下,為什么HeightenedPrivilegesBrowsers模式不能避免上面的問題。先看看SeleniumServer在HeightenedPrivilegesBrowsers模式下的工作流程圖: Injection模式不一樣,在HeightenedPrivilegesBrowsers模式下,Brows
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州2025年江蘇蘇州高新區(qū)招聘教師55人筆試歷年參考題庫(kù)附帶答案詳解
- 鹽城江蘇鹽城市文化廣電和旅游局直屬單位招錄政府購(gòu)買服務(wù)用工15人筆試歷年參考題庫(kù)附帶答案詳解
- 溫州浙江溫州瑞安市發(fā)展和改革局招聘編外用工人員筆試歷年參考題庫(kù)附帶答案詳解
- 無錫江蘇無錫高新區(qū)(新吳區(qū))人力資源和社會(huì)保障局招聘編外工作人員4人筆試歷年參考題庫(kù)附帶答案詳解
- 怒江2025年云南怒江貢山縣醫(yī)學(xué)專業(yè)大學(xué)生招聘14人筆試歷年參考題庫(kù)附帶答案詳解
- 廣東2025年廣東省機(jī)關(guān)文印中心招聘工作人員8人筆試歷年參考題庫(kù)附帶答案詳解
- 宜賓2025年四川省宜賓市中級(jí)人民法院招聘3人筆試歷年參考題庫(kù)附帶答案詳解
- 四川四川省醫(yī)學(xué)科學(xué)院·四川省人民醫(yī)院心血管超聲及心功能科醫(yī)師招聘筆試歷年參考題庫(kù)附帶答案詳解
- 南充四川南充市住房公積金管理中心和南充市財(cái)政綜合服務(wù)中心引進(jìn)3人筆試歷年參考題庫(kù)附帶答案詳解
- 內(nèi)蒙古2025年內(nèi)蒙古工業(yè)大學(xué)招聘21人筆試歷年參考題庫(kù)附帶答案詳解
- 聽力學(xué)聲學(xué)基礎(chǔ)
- 房屋托管合同范本 最詳細(xì)版
- 海水淡化用閥門
- 隱患排查治理獎(jiǎng)懲臺(tái)賬
- 2023年公務(wù)員年度考核測(cè)評(píng)表
- LY/T 2778-2016扶桑綿粉蚧檢疫技術(shù)規(guī)程
- GB/T 5285-2017六角頭自攻螺釘
- GB/T 36377-2018計(jì)量器具識(shí)別編碼
- GB/T 26522-2011精制氯化鎳
- GB/T 26332.3-2015光學(xué)和光子學(xué)光學(xué)薄膜第3部分:環(huán)境適應(yīng)性
- GB/T 17626.4-2008電磁兼容試驗(yàn)和測(cè)量技術(shù)電快速瞬變脈沖群抗擾度試驗(yàn)
評(píng)論
0/150
提交評(píng)論