Seleniumhaha中文API+Selenium+Remote+Control+selenium學(xué)習(xí)文檔資料_第1頁
Seleniumhaha中文API+Selenium+Remote+Control+selenium學(xué)習(xí)文檔資料_第2頁
Seleniumhaha中文API+Selenium+Remote+Control+selenium學(xué)習(xí)文檔資料_第3頁
Seleniumhaha中文API+Selenium+Remote+Control+selenium學(xué)習(xí)文檔資料_第4頁
Seleniumhaha中文API+Selenium+Remote+Control+selenium學(xué)習(xí)文檔資料_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Selenium中文API最近研究了下Selenium,苦于網(wǎng)上中文資料太少,便自己翻譯了下Selenium官網(wǎng)上的API ,便于大家一起溝通和學(xué)習(xí)。由于本人英文水平有限,部分字詞句的拿捏可能不太到位,希望各位朋友給出寶貴意見哈概念Selenium 通過命令進(jìn)行驅(qū)動(dòng)。 Selenium 可歸納為三種 風(fēng)格 :動(dòng)作、輔助和斷言。每一個(gè)命令調(diào)用就是下表中的一行。命令目標(biāo)值動(dòng)作 (Actions) 命令一般用于操作應(yīng)用程序的狀態(tài)。它們通過如 點(diǎn)擊鏈接 和選擇選項(xiàng) 的方式進(jìn)行工作。如果一個(gè)動(dòng)作執(zhí)行失敗,或是有錯(cuò)誤,當(dāng)前的測(cè)試將會(huì)停止執(zhí)行。許多動(dòng)作可以被包含后綴 并等待 的方式進(jìn)行調(diào)用,例如Seleni

2、um,該命令將使瀏覽器向服務(wù)器產(chǎn)生一個(gè)請(qǐng)求,并使得, 點(diǎn)擊并等待。這個(gè)后綴告知Selenium 等待加載一個(gè)新的頁面。輔助 (Accessors)用于檢查應(yīng)用程序的狀態(tài)并將結(jié)果存儲(chǔ)在變量中。例如樣可用于自動(dòng)生成斷言。storeTitle。它們同斷言 (Assertions) 類似于輔助, 但它們可以驗(yàn)證應(yīng)用程序的狀態(tài)是否同所期望的相一致。包括 確認(rèn)頁面標(biāo)題為X和驗(yàn)證該復(fù)選框是否被勾選。例如所有的Selenium 斷言可以被用于三種模式:assert ,verify ,和 waitfor 。例如,你可以assertText,verifyText ,及 waitforText 。當(dāng) assert失

3、敗時(shí),該測(cè)試將終止。當(dāng)verify失敗時(shí),該測(cè)試將繼續(xù)執(zhí)行,并將錯(cuò)誤記入日志。這就允許了通過單條 assert確保應(yīng)用程序在正確的頁面上,而通過一系列的 verify 斷言測(cè)試表單上的區(qū)域值,標(biāo)簽等。waitfor 命令用于等待某些條件變?yōu)檎?(可用于 Ajax 應(yīng)用程序的測(cè)試 )。如果該條件已經(jīng)為真,他們將立即成功執(zhí)行。反之,如果該條件不為真,則將失敗并暫停測(cè)試,直到超過當(dāng)前所設(shè)定的超時(shí)時(shí)間 (參照后面的 setTimeout 動(dòng)作 )。元素定位器 (Element Locators)告訴 Selenium 是向 HTML 中的哪一個(gè)元素發(fā)送命令。許多命令 需 要 一 個(gè) 如 target

4、屬性 的 元 素 定 位 器 。 這 其 中 包 括 elementId 和 document. forms0.element 。在接下來的部分將更詳細(xì)的描述它們。式樣 (Patterns)由于多種因素被使用著,如指定一個(gè)輸入域的期望值,或識(shí)別一個(gè)選擇選項(xiàng)。 Selenium 支持許多類型的式樣, 其中包括正則表達(dá)式, 所有這些將在接下來的章節(jié)中進(jìn)行更詳細(xì)的描述。定義一個(gè)類用于運(yùn)行Selenium 命令。元素定位器 (Element Locators)元素定位器 (Element Locators)告訴 Selenium 是向 HTML 中的哪一個(gè)元素發(fā)送命令。一個(gè)定位器的格式如下:locat

5、orType = argument我們支持如下寫法用于定位元素:identifier=id:根據(jù)指定的 id 屬性選擇元素。如果沒有匹配的值,則選擇第一個(gè)name 屬性為 id 的元素。 (參照后面 )id=id : 根據(jù)指定的 id 屬性選擇元素。name=name :選擇第一個(gè)根據(jù)指定的name 所查找到的元素。usernamename=username這里的 name 可以作為可選項(xiàng)跟在一個(gè)或多個(gè)元素過濾器的后面,通過空格進(jìn)行分隔。如果沒有指定過濾類型,則假定為value。name=flavour value=chocolatedom=javascriptExpression:通過檢測(cè)指

6、定字符串查找元素。這使得你可以通過JavaScript 貫穿 HTML 文檔對(duì)象。注意在這個(gè)字符串中返回值不是必須的;僅僅只需要確保這條語句是你塊中的最后一條。dom=document.forms myForm.myDropdowndom=document.images56dom=function foo() return document.links1; foo();xpath=xpathExpression:通過 XPath 表達(dá)式定位元素。xpath=/imgalt=Theimage alt text xpath=/tableid= table1 /tr4/td2xpath=/acont

7、ains(href, #id1 )xpath=/acontains(href, #id1 )/classxpath=(/tableclass= stylee)/thtext()= theHeaderText /./tdxpath=/inputname= name2and value= yes xpath=/*text()= rightlink=textPattern:選擇所包含的文字匹配指定式樣的鏈接(錨 )。link=The link textcss=cssSelectorSyntax: 通過 css 選擇器選擇元素。請(qǐng)查詢 CSS2 選擇器, CSS3 選擇器以獲得 更 多 信 息 。 在

8、 下 載 下 來 的 selenium core package 中 的 selenium test suite 里 的TestCssLocators test ,你同樣可以查看到使用例子。css=ahref= #id3 css=span#firstChid + span當(dāng) 前 css 選 擇 過 濾 器 支 持 所 有 的 css1,css2,css3,除 了 css3 中 一 些 虛 擬 類(:nth-of-type,:nth-last-of-type,:first-of-type,:last-of-type,:only-of-type,:visited,:hover,:active,:f

9、ocus ,:indeterminate) 以及虛擬元素 (:first-line,:first-letter,:selection,:before,:after) 。如果沒有一個(gè)顯式的前綴,Selenium 使用以下默認(rèn)寫法:dom,用于開頭為 document.的定位器xpath,用于開頭為 /的定位器identifier ,其他元素過濾器 (Element Filters)元素過濾器可以同選擇器一起使用, 從一堆候選元素中進(jìn)行篩選。 它們當(dāng)前僅使用于 name 元素選擇器。過濾器看起來更像是選擇器,也就是:filterType=argument所支持的元素過濾器為:value=value

10、Pattern匹配元素時(shí)基于它們的值進(jìn)行匹配。這在對(duì)一堆相似命名的關(guān)聯(lián)按鈕的篩選中顯得尤其有用。index=index選擇單個(gè)元素基于其在列表中的位置(從 0 開始 )。字符串匹配式樣有各種各樣的式樣語法可用于匹配字符串值:glob:pattern: 用 glob去匹配一個(gè)字符串。 Glob是一種用于命令行shells 的代表性的有限正則表達(dá)式語法。在一個(gè) glob 式樣中 ,代*表任意序列字符集,而 ?則代表任意單個(gè)字符。Glob 式樣匹配整個(gè)字符串。regexp:regexp: 使用正則表達(dá)式匹配字符串。可使用所有的JavaScript 正則表達(dá)式。如果沒有指定式樣前綴,Selenium

11、假定其為 glob式樣。Selenium ActionsaddLocationStrategy (strategyName, functionDefinition)為 selenium 定義一個(gè)新的函數(shù)用于定位頁面上的元素。例如,如果你定義了一個(gè)方法 foo ,并運(yùn)行了click(foo=blah,)我們將運(yùn)行你的函數(shù),傳遞給你字符串blah,并點(diǎn)擊該函數(shù)所返回的元素,如果返回為 null ,則拋出一個(gè) Elementnot found 的錯(cuò)誤。我們將給該函數(shù)傳遞三個(gè)參數(shù)。locator: 用戶傳遞過來的字符串inWindow:當(dāng)前所選中的窗體inDocument:當(dāng)前所選中的文檔如果未找到相

12、應(yīng)的元素,則函數(shù)必須返回一個(gè)null 。參數(shù):strategyName 定義的方法名;只能使用字母a-zA-Z, 不能包含空格或其他標(biāo)點(diǎn)符號(hào)。functionDefinition 在 JavaScript 函數(shù)中的一個(gè)定義body 的字符串。如: return inDocument.getElementById(locator);addSelection (locator, optioLocator)為通過使用選擇定位器,在一個(gè)可多選元素中所選擇的集合添加一個(gè) selection 。 查看 #doSelect 關(guān)于選擇定位器的細(xì)節(jié)。參數(shù):locator 用于指定一個(gè)多選框的元素定位器optio

13、nLocator 一個(gè)選擇定位器(默認(rèn)為標(biāo)簽 )allowNativeXpath (allow)指定Selenium 是否使用XPath 的本地瀏覽執(zhí)行(如果有可用的本地版本); 如果傳遞的值為false,我們將使用 pure-JavaScript xpath 庫。使用 pure-JS xpath 庫可以提高 xpath 元素定位器在不同瀏覽器中的一致性,但其執(zhí)行速度將大大低于本地執(zhí)行。參數(shù):allow Boolean,true意味著我們更愿意使用本地XPath;false 則意味著我們將只使用JSXPathaltKeyDown()按下 alt 鍵并保持其按下狀態(tài),直到doAltUp() 被調(diào)

14、用或一個(gè)新的頁面被加載。altKeyUp()釋放 alt 鍵answerOnNextPrompt (answer)通知 Selenium 返回下一次JavaScript promptmpt()所指定的回答字符串。參數(shù):answer 對(duì)彈出的提示所給與的回答assignId (locator,identifier)臨時(shí)為指定元素設(shè)定一個(gè)id屬性,使你可以在將來使用其ID ,以代替緩慢且更復(fù)雜的XPath。該 ID 將在頁面重載后消失。參數(shù):locator 指向某個(gè)元素的元素定位器identifier 為指定元素作為ID 使用的字符串break()暫停當(dāng)前正在進(jìn)行的測(cè)試, 并等待用戶按下繼續(xù)按鈕。

15、 這個(gè)命令對(duì)于調(diào)試非常有用, 但使用時(shí)要特別小心,因?yàn)樗麑?qiáng)制暫停自動(dòng)化測(cè)試,直到用戶手動(dòng)操作。check(locator)勾選一個(gè)關(guān)聯(lián)性按鈕(checkbox/radio)參數(shù):locator 一個(gè)元素定位器chooseCancelOnNextConfirmation()默認(rèn)情況下, Selenium 的重載 window.confirm() 函數(shù)將返回 true,等同于用戶手動(dòng)點(diǎn)擊 OK; 執(zhí)行該命令后, 下一次調(diào)用 confirm() 將返回 false,等同于用戶手動(dòng)點(diǎn)擊了 Cancel。Selenium對(duì)后來的確認(rèn)動(dòng)作將繼續(xù)使用默認(rèn)行為,自動(dòng)返回true(OK), 除非 /直到你為每

16、個(gè)確認(rèn)動(dòng)作明確的調(diào)用此命令。chooseOkOnNextConfirmation()撤銷調(diào)用 chooseCancelOnNextConfirmation 的效果。注意,Selenium 的重載 window.confirm() 函數(shù)通常將自動(dòng)返回 true,等同于用戶手動(dòng)點(diǎn)擊 OK ,因此你沒有必要使用此命令,除非由于某種原因使你在下一次確認(rèn)動(dòng)作前不得不改變你先前的想法。在任意確認(rèn)動(dòng)作后,Selenium 對(duì)后來的確認(rèn)動(dòng)作將繼續(xù)使用默認(rèn)行為,自動(dòng)返回true(OK), 除非 / 直到你為每個(gè)確認(rèn)動(dòng)作明確的調(diào)用chooseCancelOnNextConfirmation() 。click(lo

17、cator)點(diǎn)擊一個(gè)鏈接、按鈕、多選框或單選框。如果該點(diǎn)擊事件導(dǎo)致了新的頁面加載(如同鏈接通常所作的 ),將調(diào)用waitForPageToLoad 。參數(shù):locator - 一個(gè)元素定位器clickAt(locator,coordString)點(diǎn)擊一個(gè)鏈接、按鈕、多選框或單選框。如果該點(diǎn)擊事件導(dǎo)致了新的頁面加載(如同鏈接通常所作的 ),將調(diào)用waitForPageToLoad 。參數(shù):locator - 一個(gè)元素定位器coordString 指定由定位器返回的鼠標(biāo)事件相關(guān)聯(lián)的元素x,y 坐標(biāo) (也就是10,20)close()模擬用戶點(diǎn)擊彈出窗體或表單標(biāo)題欄上的關(guān)閉 按鈕。controlKe

18、yDown()按下 control 鍵并保持其按下狀態(tài),直到doControlUp() 被調(diào)用或一個(gè)新的頁面被加載。controlKeyUp()釋放 control 鍵createCookie(nameValuePair,optionsString)創(chuàng)建一個(gè)新的 cookie,除非你清楚的指定該 cookie 的路徑,否則其路徑和域?qū)⑴c當(dāng)前測(cè)試的頁面相同。參數(shù):nameValuePair 該 cookie 的名稱和值,使用如下格式 name=value optionsString 該 cookie 的選項(xiàng)。當(dāng)前支持的選項(xiàng)包括 path和 max_age。optionsString 的格式為 p

19、ath=/path/,max_age=60。選項(xiàng)的順序無關(guān)緊要。deleteCookie(name,path)刪除指定路徑下的該名稱cookie 。參數(shù):name 被刪除 cookie 的名稱path 被刪除 cookie 的路徑屬性doubleClick(locator)雙擊一個(gè)鏈接、按鈕、多選框或單選框。如果該雙擊事件導(dǎo)致了新的頁面加載(如同鏈接通常所作的 ),將調(diào)用waitForPageToLoad 。參數(shù):locator - 一個(gè)元素定位器doubleClickAt(locator,coordString)雙擊一個(gè)鏈接、按鈕、多選框或單選框。如果該雙擊事件導(dǎo)致了新的頁面加載(如同鏈接通

20、常所作的 ),將調(diào)用waitForPageToLoad 。參數(shù):locator - 一個(gè)元素定位器coordString 指定由定位器返回的鼠標(biāo)事件相關(guān)聯(lián)的元素x,y 坐標(biāo) (也就是10,20)dragAndDrop(locator,movementsString)拖動(dòng)元素一定的距離并放下參數(shù):locator - 一個(gè)元素定位器movementsString 從當(dāng)前位置到指定位置的像素偏移量,如, +70,-300 dragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinationObject)拖動(dòng)元素到另一元素參數(shù):

21、locatorOfObjectToBeDragged 被拖動(dòng)的元素locatorOfDragDestinationObject 被拖動(dòng)的元素將拖向的元素的坐標(biāo)(如,其最中心像素)Dragdrop(locator,movementsString)不建議用 dragAndDrop代替參數(shù):locator - 一個(gè)元素定位器movementsString 從當(dāng)前位置到指定位置的像素偏移量,如, +70,-300 Echo(message)打印指定消息到你的Selenese 表的第三個(gè)表單元。有利于調(diào)試。參數(shù):message 要打印的消息fireEvent(locator,eventName)明確地模

22、擬一個(gè)事件,觸發(fā)onevent響應(yīng)句柄。參數(shù):locator - 一個(gè)元素定位器eventName 事件名,如 focus 或 blur getSpeed()獲取執(zhí)行速度 (也就是,獲取接下來的每一個(gè)selenium 操作的延遲豪秒長度)。默認(rèn)情況下,是不會(huì)有延遲的。也就是延遲為0 毫秒。參照setSpeed。goBack()模擬用戶點(diǎn)擊其瀏覽器上的back按鈕highlight(locator)暫時(shí)將指定元素的背景色改變?yōu)辄S色。有利于調(diào)試。參數(shù):locator - 一個(gè)元素定位器keyDown(locator,keySequence)模擬用戶按下一個(gè)鍵(除了還沒釋放的)參數(shù):locator

23、- 一個(gè)元素定位器keySequence 可以是個(gè)字符串 ( 后跟隨要被按下鍵的數(shù)字鍵碼,通常是該鍵的 ASCII 值 ),或是個(gè)單字符,如 w ,119。keyPress(locator,keySequence)模擬用戶按下和釋放一個(gè)鍵。參數(shù):locator - 一個(gè)元素定位器keySequence 可以是個(gè)字符串 ( 后跟隨要被按下鍵的數(shù)字鍵碼,通常是該鍵的 ASCII 值 ),或是個(gè)單字符,如 w ,119。keyUp(locator,keySequence)模擬用戶釋放一個(gè)鍵。參數(shù):locator - 一個(gè)元素定位器keySequence 可以是個(gè)字符串 ( 后跟隨要被按下鍵的數(shù)字鍵碼

24、,通常是該鍵的 ASCII 值 ),或是個(gè)單字符,如 w ,119。metaKeyDown()按下 meta 鍵并保持其按下狀態(tài),直到doMetaUp() 被調(diào)用或一個(gè)新的頁面被加載。metaKeyUp()釋放 meta 鍵mouseDown(locator)模擬用戶在指定元素上按下鼠標(biāo)按鈕(除了還沒釋放的)。參數(shù):locator - 一個(gè)元素定位器mouseDownAt(locator,coordString)模擬用戶在指定位置上按下鼠標(biāo)按鈕(除了還沒釋放的)。參數(shù):locator - 一個(gè)元素定位器coordString - 指定由定位器返回的鼠標(biāo)事件相關(guān)聯(lián)的元素x,y 坐標(biāo) (也就是10

25、,20)mouseMove(locator)模擬用戶在指定元素上按下鼠標(biāo)按鈕(除了還沒釋放的)。參數(shù):locator - 一個(gè)元素定位器mouseMoveAt(locator,coordString)模擬用戶在指定位置上按下鼠標(biāo)按鈕(除了還沒釋放的)。參數(shù):locator - 一個(gè)元素定位器coordString - 指定由定位器返回的鼠標(biāo)事件相關(guān)聯(lián)的元素x,y 坐標(biāo) (也就是10,20)mouseOut(locator)模擬用戶從指定元素上移開鼠標(biāo)指針。參數(shù):locator - 一個(gè)元素定位器mouseOver(locator)模擬用戶鼠標(biāo)滑過指定元素。參數(shù):locator - 一個(gè)元素定位

26、器mouseUp(locator)模擬用戶在指定元素上釋放鼠標(biāo)按鈕時(shí)發(fā)生的事件(也就是,停止保持按鈕按下)。參數(shù):locator - 一個(gè)元素定位器mouseUpAt(locator,coordString)模擬用戶在指定元素上釋放鼠標(biāo)按鈕時(shí)發(fā)生的事件(也就是,停止保持按鈕按下)。參數(shù):locator - 一個(gè)元素定位器coordString - 指定由定位器返回的鼠標(biāo)事件相關(guān)聯(lián)的元素x,y 坐標(biāo) (也就是10,20)open(url)在測(cè)試框架中打開一個(gè) URL ,可以為相對(duì)和絕對(duì) URLs 。open命令將等待頁面加載完成才繼續(xù)進(jìn)行,也就是明確的指名 并等待 后綴。注意:由于瀏覽器安全策略

27、 (相同來源方針 )這個(gè) URL 必須和當(dāng)前運(yùn)行的HTML在相同的域。如果你不得不在另一個(gè)域打開一個(gè)URL ,則需要用Selenium 服務(wù)在另一個(gè)域去打開一個(gè)新的瀏覽器會(huì)話。參數(shù):url 要打開的 URL, 可以為空windowID要選擇窗體的JavaScript window IDpause(waitTime)等待指定時(shí)間 (以毫秒為單位 )參數(shù):waitTime 要睡眠的時(shí)間(以毫秒為單位 )refresh()模擬用戶點(diǎn)擊瀏覽器上的Refresh按鈕。removeAllSelections(locator)取消所有可多選元素的選擇狀態(tài)。參數(shù):locator 一個(gè)用于識(shí)別多選框的元素定位器

28、removeSelection(locator,optionLocator)從用選項(xiàng)定位器進(jìn)行篩選的多選元素的篩選集合中移除一個(gè)集合。在#doSelect 中查看選項(xiàng)定位器的詳細(xì)信息。參數(shù):locator 一個(gè)用于識(shí)別多選框的元素定位器optionLocator 一個(gè)選項(xiàng)定位器(默認(rèn)為一個(gè)標(biāo)簽)runScript(script)在當(dāng)前測(cè)試窗體的body 中創(chuàng)建一個(gè)新的script標(biāo)簽,并在body 中添加指定的命令文本。用這種方式執(zhí)行腳本,通??梢员仁褂肧elenium 的 getEval方式更簡(jiǎn)易的進(jìn)行調(diào)試。要注意的是,由這種腳本標(biāo)簽所拋出的異常不受Selenium 管理,因此當(dāng)該腳本有可能

29、會(huì)拋出異常時(shí),你需要用try/catch 塊將其包含起來。script 需要執(zhí)行的JavaScript 片段select(selectLocator,optionLocator)用選項(xiàng)選擇器從一個(gè)下拉框中選擇一個(gè)選項(xiàng)。選項(xiàng)選擇器提供不同的方法從一個(gè) HTML 選擇元素中識(shí)別選項(xiàng)。 ( 例如:選擇一個(gè)指定選項(xiàng),或斷言一個(gè)滿足某種規(guī)范的選項(xiàng) )有許多種形式的選擇選項(xiàng)定位器。label=labelPattern: 基于其標(biāo)簽匹配選項(xiàng),如其有效文本。(默認(rèn) )label=regexp:Oothervalue=valuePattern: 基于其值匹配選項(xiàng)。value=otherid=id:基于其 id

30、匹配選項(xiàng)。id=option1index=index:基于其索引匹配選項(xiàng)(從 0 開始 )。index=2如果沒有為選項(xiàng)定位器提供前綴,則默認(rèn)匹配為標(biāo)簽行為。參數(shù):selectLocator 一個(gè)用于識(shí)別下拉菜單的元素定位器optionLocator 一個(gè)選項(xiàng)選擇器(默認(rèn)為標(biāo)簽 )selectFrame(locator)在當(dāng)前窗體中選擇一個(gè)框架(你可以多次調(diào)用這個(gè)命令用于選擇嵌套框架)。要選擇父框架,用relative=parent 作為定位器;要選擇頂級(jí)框架,用 relative=top 。你同樣可以通過基于 0 的索引號(hào)選擇框架;用 index=0 選擇第一個(gè)框架,或者用 index=2

31、選擇第三個(gè)框架。你同樣可以直接使用一個(gè)DOM表達(dá)式來識(shí)別你要的框架。像這樣:dom=frames main .frames subframe 參數(shù):locator 一個(gè)用于識(shí)別框架或子框架的元素定位器selectWindow(windowID)選擇一個(gè)彈出窗體; 一旦一個(gè)彈出窗體被選中,所有的命令將指向該窗體。 要再次選擇主窗體,將對(duì)象設(shè)定為 null 。注意: window 的內(nèi)在 JavaScript 的 name屬性和被給與的 window 文檔 (通常是你實(shí)際看到的,作為最終用戶,在窗體的標(biāo)題欄上 )的 title 之間有一個(gè)很大的不同。 name對(duì)于最終用戶 通 常 是 不 可 見

32、的 ; 它 是 作 為 第 二 個(gè) 參 數(shù) windowName 傳 遞 給 JavaScript 函 數(shù)window.open(url,windowName,windowFeatures,replaceFlag)(被 Selenium 截取 )。Selenium 有許多方法用于查找被 windowID 參數(shù)所提及的窗體對(duì)象。1.)如果 windowID為 null ,(或是字符串 null ,)則假定為用戶是提交給由瀏覽器最初實(shí)例化的窗體。2.)如果 windowID 參數(shù)的值是當(dāng)前應(yīng)用窗體的一個(gè)JavaScript 變量名,則假定該變量包含一個(gè)由調(diào)用JavaScript window.op

33、en() 函數(shù)所產(chǎn)生的返回值。3.)另外, selenium looks in a hash it maintains that maps string names to window names4.)如果失敗了, 我們將循環(huán)遍歷所有已知的窗體以便試圖找出適合的 title。由于 title不是必須唯一,因此可能會(huì)產(chǎn)生一些非期望的行為。如果很難判定你所要操作的窗體的名稱,你可以查看為識(shí)別通過window.open( 被 Selenium截取 )所打開窗體的名稱時(shí)所產(chǎn)生的selenium 日志消息。在每個(gè)窗體被打開時(shí),你通??梢钥吹饺缦滦畔ⅲ篸ebug:window.opencallinterc

34、epted;windowID( 你 可 以 用 于selectWindow()ismyNewWindow在某些情況, Selenium 會(huì)無法截取window.open 的調(diào)用 ( 例如,如果該調(diào)用發(fā)生在onLoad事件之間或之前)。 ( 該 BUG標(biāo)記為SEL-339) 。在這些情況,你可以使用Selenium 的openWindow 命令強(qiáng)制Selenium 去通告打開窗體的名稱,使用一個(gè)空(blank)url,像這樣:openWindow( , myFunnyWindow。 )參數(shù):windowID要選擇窗體的JavaScript 窗體 IDsetBrowserLogLevel(logL

35、evel)設(shè)定瀏覽器方日志信息級(jí)別;在此級(jí)別之下的日志信息將被丟棄。有效的日志級(jí)別字符串有: debug,info ,warn,error,或 off 。要查看瀏覽器日志,在GUI 模式下打開日志窗口,或在Selenium RC 中將瀏覽器端記入日志設(shè)定為enable。參數(shù):logLevel 以下之一: debug, info, warn, error,或 off setCursorPosition(locator,position)將文本光標(biāo)移動(dòng)到被給與的輸入元素或文本域的指定位置。 若指定元素不是一個(gè)可輸入元素或文本域,該方法將失敗。參數(shù):locator 一個(gè)指向輸入元素或文本域的元素定位

36、器position 該范圍的光標(biāo)數(shù)字位置; position 如果設(shè)定為 0,則為該范圍域的最開始位置,你同樣可以將光標(biāo)設(shè)定為 -1 以移動(dòng)到該范圍域的最末端。setMouseSpeed(pixels)配置在 dragAndDrop命令執(zhí)行期間,mousemove事件時(shí)的像素?cái)?shù)字(默認(rèn)為 10)。將這個(gè)值設(shè)定為0,意味著我們將向從開始位置到結(jié)束位置的每一個(gè)像素發(fā)送一個(gè)mousemove事件;那將會(huì)非常緩慢,且可能導(dǎo)致某些瀏覽器將該 JavaScript 強(qiáng)制設(shè)定為超時(shí)。如果該鼠標(biāo)速度大于兩個(gè)拖動(dòng)對(duì)象間的距離,我們將只向開始位置和結(jié)束位置發(fā)送一個(gè)mousemove事件。參數(shù):pixels 兩個(gè)

37、mousemove事件間的像素間隔setSpeed(value)設(shè)定執(zhí)行速度 (也就是說, 設(shè)定將要執(zhí)行的每條selenium 操作間的毫秒延遲間隔長度)。默認(rèn)情況下,沒有延遲,也就是延遲為0 毫秒。參數(shù):value 在操作后的暫停毫秒數(shù)setTimeout(timeout)指定 Selenium 等待動(dòng)作完成的等待時(shí)間。需要等待的動(dòng)作包括open和 waitFor* 。默認(rèn)超時(shí)為30 秒。參數(shù):timeout 以毫秒為單位,超過后該命令將返回錯(cuò)誤。shiftKeyDown()按下 shift 鍵,并保持按下狀態(tài),直到doShiftUp() 被調(diào)用或一個(gè)新的頁面被加載。shiftKeyUp()

38、釋放 shift 鍵。store(expression,variableName)該命令是存儲(chǔ)表達(dá)式的同義詞。參數(shù):expression 要存儲(chǔ)的值variableName 用于存儲(chǔ)結(jié)果的變量名submit(formLocator)提交給指定表單。這對(duì)于沒有提交按鈕的表單特別有用,如,簡(jiǎn)單輸入的search表單。參數(shù):formLocator 一個(gè)指向你要提交的表單的元素定位器type(locator,value)設(shè)定一個(gè)輸入域的值,如同你輸入進(jìn)去一樣。其同樣可用于單選框,多選框等。在這些情況,value應(yīng)為選項(xiàng)選擇時(shí)的值,而不是有效文本。參數(shù):locator 一個(gè)元素定位器value 要錄入的

39、值typeKeys(locator,value)模擬在指定元素上的按鍵事件,如同是你一個(gè)鍵一個(gè)鍵敲上去一樣。比起為指定字符串的每個(gè)字符調(diào)用其對(duì)于需要明確按鍵事件的動(dòng)態(tài)UIkeyDown,keyUp,keyPress方法,這個(gè)函數(shù)要方便的多;組件 (如自動(dòng)完成的combo box) 同樣有用。不同于簡(jiǎn)單的 敲打 命令 將指定值直接強(qiáng)制賦給頁面, 該指令可能有, 也可能沒有任何效果,即時(shí)在敲打按鈕通常會(huì)有效的情況下。例如,如果你在一個(gè)表單元素上使用typeKeys 你可能可以,也可能不可以看到看到你在該區(qū)域錄入的效果。,在有些時(shí)候,你可能不得不使用簡(jiǎn)單的type命令去設(shè)定域的值,然后用typeKe

40、ys命令去發(fā)送按鍵事件以告知你所錄入的值。參數(shù):locator 一個(gè)元素定位器value 要錄入的值uncheck(locator)取消選中一個(gè)關(guān)聯(lián)性按鈕(checkbox/radio)參數(shù):locator 一個(gè)元素定位器waitForCondition(script,timeout)重復(fù)執(zhí)行指定JavaScript 片段直到其值為true。該片段可以有多行,但只考慮其最后一行的結(jié)果。要注意:默認(rèn)情況下,該片段會(huì)在運(yùn)行者的測(cè)試窗體運(yùn)行,而不是在你的應(yīng)用程序窗體。要得到你的應(yīng)用程序窗體, 你可以使用 JavaScript 片段 selenium.browserbot.getCurrentWind

41、ow() ,然后讓你的 JavaScript 在那運(yùn)行。參數(shù):script 要運(yùn)行的JavaScript 片段timeout 以毫秒為單位,超過后該命令將返回錯(cuò)誤。waitForFrameToLoad(frameAddress,timeout)等待一個(gè)新的框架加載。Selenium 通常會(huì)持續(xù)跟蹤新頁面和框架的加載狀態(tài),當(dāng)其第一次注意到頁面加載完成,將會(huì)設(shè)定一個(gè) newPageLoaded標(biāo)志。查看 waitForPageToLoad 獲得更多信息。參數(shù):frameAddress 服務(wù)端的框架地址timeout -以毫秒為單位,超過后該命令將返回錯(cuò)誤。waitForPageToLoad(tim

42、eout)等待一個(gè)新的頁面加載。你可以使用此命令以代替AndWait后綴, clickAndWait ,selectAndWait ,typeAndWait 等( 僅在 JS API 中有效 )。Selenium 通常會(huì)持續(xù)跟蹤新頁面的加載狀態(tài), 當(dāng)其第一次注意到頁面加載完成, 將會(huì)設(shè)定一個(gè)newPageLoaded標(biāo)志。當(dāng)此標(biāo)志變?yōu)?false 后再運(yùn)行其他 Selenium 命令。因此,如果你要等待一個(gè)頁面加載完成,當(dāng)一個(gè)Selenium 命令導(dǎo)致一個(gè)頁面加載后就需立即開始等待。參數(shù):timeout -以毫秒為單位,超過后該命令將返回錯(cuò)誤。waitForPopUp(windowID,tim

43、eout)等待一個(gè)彈出窗體出現(xiàn)和加載。參數(shù):windowID將出現(xiàn)窗體的JavaScript 窗體 IDtimeout -以毫秒為單位,超過后該命令將返回錯(cuò)誤。windowFocus()將焦點(diǎn)賦給當(dāng)前選擇窗體windowMaximize()重新設(shè)定當(dāng)前窗體大小為全屏Selenium AccessorsassertErrorOnNext(message)告訴 Selenium 在下一個(gè)命令執(zhí)行時(shí)期待有錯(cuò)誤。參數(shù):message 我們所期望的錯(cuò)誤信息。如果出現(xiàn)不正確的錯(cuò)誤信息,該命令將失敗。同斷言相關(guān)聯(lián),自動(dòng)生成:assertNotErrorOnNext(message)verifyErrorOn

44、Next(message)verifyNotErrorOnNext(message)waitForErrorOnNext(message)waitForNotErrorOnNext(message)assertFailureOnNext(message)告訴 Selenium 在下一個(gè)命令執(zhí)行時(shí)期待有失敗。參數(shù):message 我們所期望的失敗信息。如果出現(xiàn)不正確的失敗信息,該命令將失敗。同斷言相關(guān)聯(lián),自動(dòng)生成:assertNotFailureOnNext(message)verifyFailureOnNext(message)verifyNotFailureOnNext(message)wa

45、itForFailureOnNext(message)waitForNotFailureOnNext(message)assertSelected(selectLocator,optionLocator)驗(yàn)證從下拉框中選擇的選項(xiàng)滿足選項(xiàng)指定器。注 意 , 不 贊 成 使 用 該 命 令 ; 你 應(yīng) 該 使 用 assertSelectedLabel, assertSelectedValue, assertSelectedIndex, 或 assertSelectedId進(jìn)行代替。查看選擇命令獲取更多關(guān)于選擇定位器的信息。參數(shù):selectLocator - 一個(gè)用于識(shí)別下拉菜單的元素定位器op

46、tionLocator 一個(gè)選項(xiàng)定位器,代表性的就是一個(gè)選項(xiàng)標(biāo)簽(如 John Smith)同斷言相關(guān)聯(lián),自動(dòng)生成:assertNotSelected(selectLocator,optionLocator)verifySelected(selectLocator,optionLocator)verifyNotSelected(selectLocator,optionLocator)waitForSelected(selectLocator,optionLocator)waitForNotSelected(selectLocator,optionLocator)storeAlert(varia

47、bleName)返回在之前動(dòng)作所產(chǎn)生的JavaScript 警告消息,如果沒有警告將失敗。得到一個(gè)警告同手動(dòng)點(diǎn)擊OK 有著相同的效果。如果產(chǎn)生了一個(gè)警告,而你并不去得到/驗(yàn)證它,那么下一個(gè)Selenium 動(dòng)作將失敗。注意:在Selenium 中, JavaScript 警告將不會(huì)彈出一個(gè)可見的警告對(duì)話框。注意: Selenium 不支持在頁面的 onload() 事件句柄中所產(chǎn)生的 JavaScript 警告。在這種情況下,將會(huì)生成一個(gè)可見的對(duì)話框, Selenium 將被懸停直到手動(dòng)點(diǎn)擊 OK 。Returns:最近 JavaScript 的警告消息同斷言相關(guān)聯(lián),自動(dòng)生成:assertAl

48、ert(pattern)assertNotAlert(pattern)verifyAlert(pattern)verifyNotAlert(pattern)waitForAlert(pattern)waitForNotAlert(pattern)storeAllButtons(variableName)返回頁面上所有按鈕的ID 集。如果被給與的按鈕沒有ID ,則將在結(jié)果數(shù)組中顯示為。Returns:頁面上所有按鈕的ID 集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllButtons(pattern)assertNotAllButtons(pattern)verifyAllButtons(patt

49、ern)verifyNotAllButtons(pattern)waitForAllButtons(pattern)waitForNotAllButtons(pattern)storeAllFields(variableName)返回頁面上所有可輸入域的ID 集。如果被給與的域沒有ID ,則將在結(jié)果數(shù)組中顯示為Returns:頁面上所有域的ID 集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllFields(pattern)assertNotAllFields (pattern)verifyAllFields (pattern)verifyNotAllFields (pattern)waitFor

50、AllFields (pattern)waitForNotAllFields (pattern)storeAllLinks(variableName)返回頁面上所有鏈接的ID 集。如果被給與的鏈接沒有ID ,則將在結(jié)果數(shù)組中顯示為Returns:頁面上所有鏈接的ID 集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllLinks(pattern)assertNotAllLinks (pattern)verifyAllLinks (pattern)verifyNotAllLinks (pattern)waitForAllLinks (pattern)waitForNotAllLinks (patter

51、n)storeAllWindowIds(variableName)返回所有瀏覽器已知的窗體ID 集。Returns:所有瀏覽器已知的窗體ID 集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllWindowIds (pattern)assertNotAllWindowIds (pattern)verifyAllWindowIds (pattern)verifyNotAllWindowIds (pattern)waitForAllWindowIds (pattern)waitForNotAllWindowIds (pattern)storeAllWindowNames(variableName)返回所

52、有瀏覽器已知的窗體名稱集。Returns:所有瀏覽器已知的窗體名稱集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllWindowNames (pattern)assertNotAllWindowNames (pattern)verifyAllWindowNames (pattern)verifyNotAllWindowNames (pattern)waitForAllWindowNames (pattern)waitForNotAllWindowNames (pattern)storeAllWindowTitles(variableName)返回所有瀏覽器已知的窗體標(biāo)題集。Returns:所有瀏覽

53、器已知的窗體標(biāo)題集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAllWindowTitles (pattern)assertNotAllWindowTitles (pattern)verifyAllWindowTitles (pattern)verifyNotAllWindowTitles (pattern)waitForAllWindowTitles (pattern)waitForNotAllWindowTitles (pattern)storeAttribute(attributeLocator,variableName)獲得一個(gè)元素屬性值。參數(shù):attributeLocator 由 符號(hào)開頭

54、,后跟隨屬性名,如 foobar variableName 用于存儲(chǔ)結(jié)果的變量名。Returns:指定屬性的值同斷言相關(guān)聯(lián),自動(dòng)生成:assertAttribute (attributeLocator, pattern)assertNotAttribute (attributeLocator, pattern)verifyAttribute (attributeLocator, pattern)verifyNotAttribute (attributeLocator, pattern)waitForAttribute (attributeLocator, pattern)waitForNotA

55、ttribute (attributeLocator, pattern)storeAttributeFromAllWindows(attributeName,variableName)返回所有已知窗體的某些屬性的每一個(gè)實(shí)例。參數(shù):attributeName 窗體某屬性的名稱variableName -用于存儲(chǔ)結(jié)果的變量名。Returns:從所有已知窗體獲得的該屬性的數(shù)值集。同斷言相關(guān)聯(lián),自動(dòng)生成:assertAttributeFromAllWindows (attributeName, pattern)assertNotAttributeFromAllWindows (attributeNam

56、e, pattern)verifyAttributeFromAllWindows (attributeName, pattern)verifyNotAttributeFromAllWindows (attributeName, pattern)waitForAttributeFromAllWindows (attributeName, pattern)waitForNotAttributeFromAllWindows (attributeName, pattern)storeBodyText(variableName)獲取頁面上所有文本。Returns:頁面上所有文本同斷言相關(guān)聯(lián),自動(dòng)生成:a

57、ssertBodyText (pattern)assertNotBodyText (pattern)verifyBodyText (pattern)verifyNotBodyText (pattern)waitForBodyText (pattern)waitForNotBodyText (pattern)storeConfirmation(variableName)返回在之前動(dòng)作所產(chǎn)生的JavaScript 確認(rèn)消息。默認(rèn)情況下, confirm 函數(shù)將返回true,同手動(dòng)點(diǎn)擊OK 有著相同的效果。這可以通過之前執(zhí)行 chooseCancelOnNextConfirmation 命令改變。如

58、果產(chǎn)生了一個(gè)確認(rèn),而你并不去得到 / 驗(yàn)證它,那么下一個(gè) Selenium 動(dòng)作將失敗。注意:在Selenium 中, JavaScript 確認(rèn)將不會(huì)彈出一個(gè)可見的對(duì)話框。注意: Selenium 不支持在頁面的 onload() 事件句柄中所產(chǎn)生的 JavaScript 警告。在這種情況下,將會(huì)生成一個(gè)可見的對(duì)話框, Selenium 將被懸停直到手動(dòng)點(diǎn)擊 OK 。Returns:最近 JavaScript 的確認(rèn)消息同斷言相關(guān)聯(lián),自動(dòng)生成:assertConfirmation (pattern)assertNotConfirmation (pattern)verifyConfirmati

59、on (pattern)verifyNotConfirmation (pattern)waitForConfirmation (pattern)waitForNotConfirmation (pattern)storeCookie(variableName)返回當(dāng)前測(cè)試下當(dāng)前頁面的所有cookiesReturns:當(dāng)前測(cè)試下當(dāng)前頁面的所有cookies同斷言相關(guān)聯(lián),自動(dòng)生成:assertCookie (pattern)assertNotCookie (pattern)verifyCookie (pattern)verifyNotCookie (pattern)waitForCookie (pa

60、ttern)waitForNotCookie (pattern)storeCursorPosition(locator,variableName)返回所給與的輸入元素或文本域的文本光標(biāo)位置。要注意,這并不在所有的瀏覽器中有效。特別指出,如果光標(biāo) /選擇已經(jīng)被JavaScript 所清除,該命令將嘗試返回光標(biāo)所在的最后位置,即使光標(biāo)已經(jīng)不在該頁面。這被歸檔為SEL-243 。如果指定元素不是一個(gè)可輸入元素或文本域,或沒有光標(biāo)在此元素上,該方法將失敗。參數(shù):locator 一個(gè)指向輸入元素或文本域的元素定位器variableName -用于存儲(chǔ)結(jié)果的變量名。Returns:在該域中的光標(biāo)數(shù)字位置同

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論