Selenium 中文API
Selenium 中文API
轉(zhuǎn)自:http://blog.csdn.net/lh9529/article/details/3946567
概念
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)前的測試將會(huì)停止執(zhí)行。
許多動(dòng)作可以被包含后綴”并等待”的方式進(jìn)行調(diào)用,例如,”點(diǎn)擊并等待”。這個(gè)后綴告知Selenium,該命令將使瀏覽器向服務(wù)器產(chǎn)生一個(gè)請(qǐng)求,并使得Selenium等待加載一個(gè)新的頁面。
輔助(Accessors)用于檢查應(yīng)用程序的狀態(tài)并將結(jié)果存儲(chǔ)在變量中。例如”storeTitle”。它們同樣可用于自動(dòng)生成斷言。
斷言(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”失敗時(shí),該測試將終止。當(dāng)”verify”失敗時(shí),該測試將繼續(xù)執(zhí)行,并將錯(cuò)誤記入日志。這就允許了通過單條”assert”確保應(yīng)用程序在正確的頁面上,而通過一系列的”verify”斷言測試表單上的區(qū)域值,標(biāo)簽等。
“waitfor”命令用于等待某些條件變?yōu)檎?可用于Ajax應(yīng)用程序的測試)。如果該條件已經(jīng)為真,他們將立即成功執(zhí)行。反之,如果該條件不為真,則將失敗并暫停測試,直到超過當(dāng)前所設(shè)定的超時(shí)時(shí)間(參照后面的setTimeout動(dòng)作)。
元素定位器(Element Locators)告訴Selenium是向HTML中的哪一個(gè)元素發(fā)送命令。許多命令需要一個(gè)如”target”屬性的元素定位器。這其中包括”elementId”和”document. forms[0].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è)定位器的格式如下:
???????locatorType = argument
我們支持如下寫法用于定位元素:
·identifier=id?:根據(jù)指定的@id屬性選擇元素。如果沒有匹配的值,則選擇第一個(gè)@name屬性為id的元素。(參照后面)
·id=id?:根據(jù)指定的@id屬性選擇元素。
·name=name?:選擇第一個(gè)根據(jù)指定的@name所查找到的元素。
????〇 username
????〇??name=username
這里的name可以作為可選項(xiàng)跟在一個(gè)或多個(gè)元素過濾器的后面,通過空格進(jìn)行分隔。如果沒有指定過濾類型,則假定為value。
????〇??name=flavour value=chocolate
·dom=javascriptExpression:?通過檢測指定字符串查找元素。這使得你可以通過?JavaScript貫穿HTML文檔對(duì)象。注意在這個(gè)字符串中返回值不是必須的;僅僅只需要確保這條語句是你塊中的最后一條。
????〇??dom=document.forms[′myForm′].myDropdown
???????〇??dom=document.images[56]
???????〇??dom=function foo() { return document.links[1];}; foo();
·xpath=xpathExpression:?通過XPath?表達(dá)式定位元素。
????〇??xpath=//img[@alt=′The image alt text′]
????〇??xpath=//table[@id=′table1′]//tr[4]/td[2]
????〇??xpath=//a[contains(@href,?′#id1′)]
????〇??xpath=//a[contains(@href,?′#id1′)]/@class
????〇??xpath=(//table[@class=′stylee′])//th[text()=′theHeaderText′]/../td
????〇??xpath=//input[@name=′name2′?and @value=′yes′]
????〇??xpath=//*[text()=″right″]
·link=textPattern:?選擇所包含的文字匹配指定式樣的鏈接(錨)。
????〇??link=The link text
·css=cssSelectorSyntax:?通過css選擇器選擇元素。請(qǐng)查詢CSS2?選擇器,CSS3?選擇器以獲得更多信息。在下載下來的selenium core package中的selenium test suite?里的TestCssLocators test ,你同樣可以查看到使用例子。
????〇??css=a[href=″#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,:focus,: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=valuePattern
?????????匹配元素時(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假定其為″glob″式樣。
Selenium Actions
addLocationStrategy (strategyName, functionDefinition)
??為selenium定義一個(gè)新的函數(shù)用于定位頁面上的元素。例如,如果你定義了一個(gè)方法″foo″,并運(yùn)行了click(″foo=blah″),我們將運(yùn)行你的函數(shù),傳遞給你字符串″blah″,并點(diǎn)擊該函數(shù)所返回的元素,如果返回為null,則拋出一個(gè)″Element not found″的錯(cuò)誤。我們將給該函數(shù)傳遞三個(gè)參數(shù)。
????·locator:?用戶傳遞過來的字符串
????·inWindow:?當(dāng)前所選中的窗體
????·inDocument:?當(dāng)前所選中的文檔
如果未找到相應(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è)多選框的元素定位器
·optionLocator –?一個(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則意味著我們將只使用JS XPath
altKeyDown()
按下alt鍵并保持其按下狀態(tài),直到doAltUp()被調(diào)用或一個(gè)新的頁面被加載。
altKeyUp()
釋放alt鍵
answerOnNextPrompt (answer)
通知Selenium返回下一次JavaScript prompt[window.prompt()]所指定的回答字符串。
參數(shù):
??·answer –?對(duì)彈出的提示所給與的回答
assignId (locator,identifier)
臨時(shí)為指定元素設(shè)定一個(gè)″id″屬性,使你可以在將來使用其ID,以代替緩慢且更復(fù)雜的XPath。該ID將在頁面重載后消失。
參數(shù):
????·locator –?指向某個(gè)元素的元素定位器
??·identifier –?為指定元素作為ID使用的字符串
break()
暫停當(dāng)前正在進(jìn)行的測試,并等待用戶按下繼續(xù)按鈕。這個(gè)命令對(duì)于調(diào)試非常有用,但使用時(shí)要特別小心,因?yàn)樗麑?qiáng)制暫停自動(dòng)化測試,直到用戶手動(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),除非/直到你為每個(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(locator)
點(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)閉″按鈕。
controlKeyDown()
按下control鍵并保持其按下狀態(tài),直到doControlUp()被調(diào)用或一個(gè)新的頁面被加載。
controlKeyUp()
釋放control鍵
createCookie(nameValuePair,optionsString)
創(chuàng)建一個(gè)新的cookie,除非你清楚的指定該cookie的路徑,否則其路徑和域?qū)⑴c當(dāng)前測試的頁面相同。
參數(shù):
??·nameValuePair –?該cookie的名稱和值,使用如下格式″name=value″
·optionsString –?該cookie的選項(xiàng)。當(dāng)前支持的選項(xiàng)包括’path’和’max_age’。optionsString的格式為”path=/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)致了新的頁面加載(如同鏈接通常所作的),將調(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ù):
????·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)
明確地模擬一個(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 -?一個(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ù)字鍵碼,通常是該鍵的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,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è)元素定位器
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)
在測試框架中打開一個(gè)URL,可以為相對(duì)和絕對(duì)URLs。”open”命令將等待頁面加載完成才繼續(xù)進(jìn)行,也就是明確的指名”并等待”后綴。注意:由于瀏覽器安全策略(相同來源方針)這個(gè)URL必須和當(dāng)前運(yùn)行的HTML在相同的域。如果你不得不在另一個(gè)域打開一個(gè)URL,則需要用Selenium服務(wù)在另一個(gè)域去打開一個(gè)新的瀏覽器會(huì)話。
參數(shù):
????·url –?要打開的URL,可以為空
????·windowID –?要選擇窗體的JavaScript window ID
pause(waitTime)
等待指定時(shí)間(以毫秒為單位)
參數(shù):
????·waitTime –?要睡眠的時(shí)間(以毫秒為單位)
refresh()
模擬用戶點(diǎn)擊瀏覽器上的”Refresh”按鈕。
removeAllSelections(locator)
取消所有可多選元素的選擇狀態(tài)。
參數(shù):
????·locator –?一個(gè)用于識(shí)別多選框的元素定位器
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)前測試窗體的body中創(chuàng)建一個(gè)新的”script”標(biāo)簽,并在body中添加指定的命令文本。用這種方式執(zhí)行腳本,通常可以比使用Selenium的”getEval”方式更簡易的進(jìn)行調(diào)試。要注意的是,由這種腳本標(biāo)簽所拋出的異常不受Selenium管理,因此當(dāng)該腳本有可能會(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:^[Oo]ther
????·value=valuePattern:?基于其值匹配選項(xiàng)。
??????〇?value=other
????·id=id:?基于其id匹配選項(xiàng)。
??????〇?id=option1
????·index=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”選擇第三個(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ì)于最終用戶通常是不可見的;它是作為第二個(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.open()函數(shù)所產(chǎn)生的返回值。
3.)????另外,selenium looks in a hash it maintains that maps string names to window “names”.
4.)????如果失敗了,我們將循環(huán)遍歷所有已知的窗體以便試圖找出適合的”title”。由于”title”不是必須唯一,因此可能會(huì)產(chǎn)生一些非期望的行為。
如果很難判定你所要操作的窗體的名稱,你可以查看為識(shí)別通過window.open(被Selenium截取)所打開窗體的名稱時(shí)所產(chǎn)生的selenium?日志消息。在每個(gè)窗體被打開時(shí),你通常可以看到如下信息:
debug: window.open call intercepted; window ID (你可以用于?selectWindow()) is “myNewWindow”
在某些情況,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?窗體ID
setBrowserLogLevel(logLevel)
設(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è)指向輸入元素或文本域的元素定位器
????·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è)“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()
釋放shift鍵。
store(expression,variableName)
該命令是存儲(chǔ)表達(dá)式的同義詞。
參數(shù):
????·expression –?要存儲(chǔ)的值
????·variableName –?用于存儲(chǔ)結(jié)果的變量名
submit(formLocator)
提交給指定表單。這對(duì)于沒有提交按鈕的表單特別有用,如,簡單輸入的”search”表單。
參數(shù):
????·formLocator –?一個(gè)指向你要提交的表單的元素定位器
type(locator,value)
設(shè)定一個(gè)輸入域的值,如同你輸入進(jìn)去一樣。
其同樣可用于單選框,多選框等。在這些情況,value應(yīng)為選項(xiàng)選擇時(shí)的值,而不是有效文本。
參數(shù):
????·locator –?一個(gè)元素定位器
????·value –?要錄入的值
typeKeys(locator,value)
模擬在指定元素上的按鍵事件,如同是你一個(gè)鍵一個(gè)鍵敲上去一樣。
比起為指定字符串的每個(gè)字符調(diào)用keyDown,keyUp,keyPress方法,這個(gè)函數(shù)要方便的多;其對(duì)于需要明確按鍵事件的動(dòng)態(tài)UI組件(如自動(dòng)完成的combo box)同樣有用。
不同于簡單的”敲打”命令——將指定值直接強(qiáng)制賦給頁面,該指令可能有,也可能沒有任何效果,即時(shí)在敲打按鈕通常會(huì)有效的情況下。例如,如果你在一個(gè)表單元素上使用”typeKeys”,你可能可以,也可能不可以看到看到你在該區(qū)域錄入的效果。
在有些時(shí)候,你可能不得不使用簡單的”type”命令去設(shè)定域的值,然后用”typeKeys”命令去發(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)行者的測試窗體運(yùn)行,而不是在你的應(yīng)用程序窗體。要得到你的應(yīng)用程序窗體,你可以使用JavaScript片段selenium.browserbot.getCurrentWindow(),然后讓你的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(timeout)
等待一個(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)閒alse后再運(yùn)行其他Selenium命令。因此,如果你要等待一個(gè)頁面加載完成,當(dāng)一個(gè)Selenium命令導(dǎo)致一個(gè)頁面加載后就需立即開始等待。
參數(shù):
????·timeout?-?以毫秒為單位,超過后該命令將返回錯(cuò)誤。
waitForPopUp(windowID,timeout)
等待一個(gè)彈出窗體出現(xiàn)和加載。
參數(shù):
????·windowID –?將出現(xiàn)窗體的JavaScript?窗體ID
????·timeout -?以毫秒為單位,超過后該命令將返回錯(cuò)誤。
windowFocus()
將焦點(diǎn)賦給當(dāng)前選擇窗體
windowMaximize()
重新設(shè)定當(dāng)前窗體大小為全屏
?
Selenium Accessors
assertErrorOnNext(message)
告訴Selenium在下一個(gè)命令執(zhí)行時(shí)期待有錯(cuò)誤。
參數(shù):
????·message –?我們所期望的錯(cuò)誤信息。如果出現(xiàn)不正確的錯(cuò)誤信息,該命令將失敗。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertNotErrorOnNext(message)
????·verifyErrorOnNext(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)
??·waitForFailureOnNext(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í)別下拉菜單的元素定位器
????·optionLocator –?一個(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(variableName)
返回在之前動(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)生成:
????·assertAlert(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(pattern)
????·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)
????·waitForAllFields (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 (pattern)
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)
返回所有瀏覽器已知的窗體名稱集。
Returns:
??所有瀏覽器已知的窗體名稱集。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertAllWindowNames (pattern)
??·assertNotAllWindowNames (pattern)
??·verifyAllWindowNames (pattern)
??·verifyNotAllWindowNames (pattern)
??·waitForAllWindowNames (pattern)
??·waitForNotAllWindowNames (pattern)
storeAllWindowTitles(variableName)
返回所有瀏覽器已知的窗體標(biāo)題集。
Returns:
??所有瀏覽器已知的窗體標(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)開頭,后跟隨屬性名,如”foo@bar”
????·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)
??·waitForNotAttribute (attributeLocator, pattern)
storeAttributeFromAllWindows(attributeName,variableName)
返回所有已知窗體的某些屬性的每一個(gè)實(shí)例。
參數(shù):
????·attributeName –?窗體某屬性的名稱
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從所有已知窗體獲得的該屬性的數(shù)值集。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertAttributeFromAllWindows (attributeName, pattern)
??·assertNotAttributeFromAllWindows (attributeName, pattern)
??·verifyAttributeFromAllWindows (attributeName, pattern)
??·verifyNotAttributeFromAllWindows (attributeName, pattern)
??·waitForAttributeFromAllWindows (attributeName, pattern)
??·waitForNotAttributeFromAllWindows (attributeName, pattern)
storeBodyText(variableName)
獲取頁面上所有文本。
Returns:
??頁面上所有文本
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertBodyText (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命令改變。如果產(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)
??·verifyConfirmation (pattern)
??·verifyNotConfirmation (pattern)
??·waitForConfirmation (pattern)
??·waitForNotConfirmation (pattern)
storeCookie(variableName)
返回當(dāng)前測試下當(dāng)前頁面的所有cookies
Returns:
??當(dāng)前測試下當(dāng)前頁面的所有cookies
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertCookie (pattern)
??·assertNotCookie (pattern)
??·verifyCookie (pattern)
??·verifyNotCookie (pattern)
??·waitForCookie (pattern)
??·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ù)字位置
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertCursorPosition (locator,pattern)
??·assertNotCursorPosition (locator,pattern)
??·verifyCursorPosition (locator,pattern)
??·verifyNotCursorPosition (locator,pattern)
??·waitForCursorPosition (locator,pattern)
??·waitForNotCursorPosition (locator,pattern)
storeElementHeight(locator,variableName)
返回元素的高度
參數(shù):
????·locator –?一個(gè)指向元素的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??元素的高度
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementHeight (locator,pattern)
??·assertNotElementHeight (locator,pattern)
??·verifyElementHeight (locator,pattern)
??·verifyNotElementHeight (locator,pattern)
??·waitForElementHeight (locator,pattern)
??·waitForNotElementHeight (locator,pattern)
storeElementIndex(locator,variableName)
獲取元素相對(duì)于其父元素的索引(從0開始)。注釋節(jié)點(diǎn)和空文本節(jié)點(diǎn)將被忽略。
參數(shù):
????·locator –?一個(gè)指向元素的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??元素相對(duì)于其父元素的索引(從0開始)
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementIndex (locator,pattern)
??·assertNotElementIndex (locator,pattern)
??·verifyElementIndex (locator,pattern)
??·verifyNotElementIndex (locator,pattern)
??·waitForElementIndex (locator,pattern)
??·waitForNotElementIndex (locator,pattern)
storeElementPositionLeft(locator,variableName)
返回元素的水平位置
參數(shù):
????·locator –?一個(gè)指向元素的元素定位器或元素本身
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??到框架邊緣的像素。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementPositionLeft (locator,pattern)
??·assertNotElementPositionLeft (locator,pattern)
??·verifyElementPositionLeft (locator,pattern)
??·verifyNotElementPositionLeft (locator,pattern)
??·waitForElementPositionLeft (locator,pattern)
??·waitForNotElementPositionLeft (locator,pattern)
storeElementPositionTop(locator,variableName)
返回元素的縱向位置
參數(shù):
????·locator –?一個(gè)指向元素的元素定位器或元素本身
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??到框架邊緣的像素。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementPositionTop (locator,pattern)
??·assertNotElementPositionTop (locator,pattern)
??·verifyElementPositionTop (locator,pattern)
??·verifyNotElementPositionTop (locator,pattern)
??·waitForElementPositionTop (locator,pattern)
??·waitForNotElementPositionTop (locator,pattern)
storeElementWidth(locator,variableName)
返回元素的寬度
參數(shù):
????·locator –?一個(gè)指向元素的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??元素的寬度(以像素為單位)
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementWidth (locator,pattern)
??·assertNotElementWidth (locator,pattern)
??·verifyElementWidth (locator,pattern)
??·verifyNotElementWidth (locator,pattern)
??·waitForElementWidth (locator,pattern)
??·waitForNotElementWidth (locator,pattern)
storeEval(script,variableName)
獲得指定JavaScript片段執(zhí)行后的值。該片段可以有多行,但只返回最后一行的值。要注意到,默認(rèn)情況下,該片段將在”selenium”對(duì)象本身的上下文中運(yùn)行,因此其將提交給Selenium對(duì)象。用window將窗體提交給你的應(yīng)用程序,如:
window.document.getElementById(‘foo’)
如果你不得不在你的應(yīng)用程序頁面使用一個(gè)定位器提交一個(gè)單元素,你可以用this.browserbot.findElement(“id=foo”),這里”id=foo”就是你的定位器。
參數(shù):
????·script –?要運(yùn)行的JavaScript
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??片段執(zhí)行后的值
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertEval (script,pattern)
??·assertNotEval (script,pattern)
??·verifyEval (script,pattern)
??·verifyNotEval (script,pattern)
??·waitForEval (script,pattern)
??·waitForNotEval (script,pattern)
storeExpression(expression,variableName)
返回指定表達(dá)式。
由于JavaScript的預(yù)處理機(jī)制使其顯得非常有用。它可以用于生成如assertExpression和waitForExpression命令。
參數(shù):
????·expression –?要返回的值
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??通過的值
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertExpression (expression,pattern)
??·assertNotExpression (expression,pattern)
??·verifyExpression (expression,pattern)
??·verifyNotExpression (expression,pattern)
??·waitForExpression (expression,pattern)
??·waitForNotExpression (expression,pattern)
storeHtmlSource(variableName)
返回”html”標(biāo)簽間的整個(gè)HTML源代碼。
Returns:
??整個(gè)HTML源代碼
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertHtmlSource (pattern)
??·assertNotHtmlSource (pattern)
??·verifyHtmlSource (pattern)
??·verifyNotHtmlSource (pattern)
??·waitForHtmlSource (pattern)
??·waitForNotHtmlSource (pattern)
storeLocation(variableName)
取得當(dāng)前頁面的絕對(duì)路徑
Returns:
??當(dāng)前頁面的絕對(duì)路徑
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertLocation (pattern)
??·assertNotLocation (pattern)
??·verifyLocation (pattern)
??·verifyNotLocation (pattern)
??·waitForLocation (pattern)
??·waitForNotLocation (pattern)
storeMouseSpeed(variableName)
返回在dragAndDrop?命令執(zhí)行期間,”mousemove”事件時(shí)的像素?cái)?shù)字(默認(rèn)為10)
Returns:
??dragAndDrop?命令執(zhí)行期間,”mousemove”事件時(shí)的像素?cái)?shù)字(默認(rèn)為10)
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertMouseSpeed (pattern)
??·assertNotMouseSpeed (pattern)
??·verifyMouseSpeed (pattern)
??·verifyNotMouseSpeed (pattern)
??·waitForMouseSpeed (pattern)
??·waitForNotMouseSpeed (pattern)
storePrompt(variableName)
返回在之前動(dòng)作所產(chǎn)生的JavaScript問題提示消息。
要成功掛起問題提示需要先運(yùn)行answerOnNextPrompt命令。如果產(chǎn)生了一個(gè)問題提示,而你并不去得到/驗(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的問題提示消息
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertPrompt (pattern)
??·assertNotPrompt (pattern)
??·verifyPrompt (pattern)
??·verifyNotPrompt (pattern)
??·waitForPrompt (pattern)
??·waitForNotPrompt (pattern)
storeSelectedId(selectLocator,variableName)
獲取從指定選擇元素中選擇的選項(xiàng)元素ID。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從指定選擇元素中選擇的選項(xiàng)元素ID
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedId (selectLocator,pattern)
??·assertNotSelectedId (selectLocator,pattern)
??·verifySelectedId (selectLocator,pattern)
??·verifyNotSelectedId (selectLocator,pattern)
??·waitForSelectedId (selectLocator,pattern)
??·waitForNotSelectedId (selectLocator,pattern)
storeSelectedIds(selectLocator,variableName)
從指定選擇或多選元素中獲取選擇的選項(xiàng)元素ID集。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從指定選擇或多選元素中選擇的選項(xiàng)元素ID集合數(shù)組
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedIds (selectLocator,pattern)
??·assertNotSelectedIds (selectLocator,pattern)
??·verifySelectedIds (selectLocator,pattern)
??·verifyNotSelectedIds (selectLocator,pattern)
??·waitForSelectedIds (selectLocator,pattern)
??·waitForNotSelectedIds (selectLocator,pattern)
storeSelectedIndex(selectLocator,variableName)
從指定的選擇元素中獲取被選項(xiàng)索引(從0開始)。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從指定選擇元素中選擇的選項(xiàng)元素索引
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedIndex (selectLocator,pattern)
??·assertNotSelectedIndex (selectLocator,pattern)
??·verifySelectedIndex (selectLocator,pattern)
??·verifyNotSelectedIndex (selectLocator,pattern)
??·waitForSelectedIndex (selectLocator,pattern)
??·waitForNotSelectedIndex (selectLocator,pattern)
storeSelectedIndexs(selectLocator,variableName)
從指定的選擇或多選元素中獲取被選項(xiàng)索引(從0開始)集。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從指定選擇或多選元素中選擇的選項(xiàng)元素索引集合數(shù)組
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedIndexs (selectLocator,pattern)
??·assertNotSelectedIndexs (selectLocator,pattern)
??·verifySelectedIndexs (selectLocator,pattern)
??·verifyNotSelectedIndexs (selectLocator,pattern)
??·waitForSelectedIndexs (selectLocator,pattern)
??·waitForNotSelectedIndexs (selectLocator,pattern)
storeSelectedLabel(selectLocator,variableName)
從指定的選擇元素中獲取所選擇的選項(xiàng)標(biāo)簽(可見文本)。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
所選擇的選項(xiàng)標(biāo)簽
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedLabel (selectLocator,pattern)
??·assertNotSelectedLabel (selectLocator,pattern)
??·verifySelectedLabel (selectLocator,pattern)
??·verifyNotSelectedLabel (selectLocator,pattern)
??·waitForSelectedLabel (selectLocator,pattern)
??·waitForNotSelectedLabel (selectLocator,pattern)
storeSelectedLabels(selectLocator,variableName)
從指定的選擇或多選元素中獲取所選擇的選項(xiàng)標(biāo)簽(可見文本)。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
所選擇的選項(xiàng)標(biāo)簽
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedLabel (selectLocator,pattern)
??·assertNotSelectedLabel (selectLocator,pattern)
??·verifySelectedLabel (selectLocator,pattern)
??·verifyNotSelectedLabel (selectLocator,pattern)
??·waitForSelectedLabel (selectLocator,pattern)
??·waitForNotSelectedLabel (selectLocator,pattern)
storeSelectedValue(selectLocator,variableName)
從指定的選擇元素中獲取所選擇的選項(xiàng)值(值屬性)。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
所選擇的選項(xiàng)值
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedValue (selectLocator,pattern)
??·assertNotSelectedValue (selectLocator,pattern)
??·verifySelectedValue (selectLocator,pattern)
??·verifyNotSelectedValue (selectLocator,pattern)
??·waitForSelectedValue (selectLocator,pattern)
??·waitForNotSelectedValue (selectLocator,pattern)
storeSelectedValues(selectLocator,variableName)
從指定的選擇或多選元素中獲取所有所選擇的選項(xiàng)值(值屬性)。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
所有所選擇的選項(xiàng)值數(shù)組
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedValues (selectLocator,pattern)
??·assertNotSelectedValues (selectLocator,pattern)
??·verifySelectedValues (selectLocator,pattern)
??·verifyNotSelectedValues (selectLocator,pattern)
??·waitForSelectedValues (selectLocator,pattern)
??·waitForNotSelectedValues (selectLocator,pattern)
storeSelectOptions(selectLocator,variableName)
獲取指定選擇下拉框的選項(xiàng)標(biāo)簽。
參數(shù):
????·selectLocator -?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
指定選擇下拉框的選項(xiàng)標(biāo)簽數(shù)組
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSelectedOptions (selectLocator,pattern)
??·assertNotSelectedOptions (selectLocator,pattern)
??·verifySelectedOptions (selectLocator,pattern)
??·verifyNotSelectedOptions (selectLocator,pattern)
??·waitForSelectedOptions (selectLocator,pattern)
??·waitForNotSelectedOptions (selectLocator,pattern)
storeTable(tableCellAddress,variableName)
從某個(gè)表的單元格中獲取文本。單元格地址語法如tablelocator.row.column,這里的row和column從0開始。
參數(shù):
????·tableCellAddress –?一個(gè)單元格地址,如”foo.1.4”
????·variableName -用于存儲(chǔ)結(jié)果的變量名。
Returns:
??從指定單元格取出的文本
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertTable (tableCellAddress,pattern)
??·assertNotTable (tableCellAddress,pattern)
??·verifyTable (tableCellAddress,pattern)
??·verifyNotTable (tableCellAddress,pattern)
??·waitForTable (tableCellAddress,pattern)
??·waitForNotTable (tableCellAddress,pattern)
storeText(locator,variableName)
獲取元素的文本。這對(duì)任何包含文本的元素都有效。該命令即可以用于如火狐瀏覽器的textContent,也可以用于如IE瀏覽器的innerText——顯示給用戶的。
參數(shù):
????·locator?-?一個(gè)元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??元素的文本
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertText (locator,pattern)
??·assertNotText (locator,pattern)
??·verifyText (locator,pattern)
??·verifyNotText (locator,pattern)
??·waitForText (locator,pattern)
??·waitForNotText (locator,pattern)
storeTitle(variableName)
獲取當(dāng)前頁面的標(biāo)題。
Returns:
??當(dāng)前頁面的標(biāo)題。
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertTitle (pattern)
??·assertNotTitle (pattern)
??·verifyTitle (pattern)
??·verifyNotTitle (pattern)
??·waitForTitle (pattern)
??·waitForNotTitle (pattern)
storeValue(locator,variableName)
獲得一個(gè)輸入域(或任何包含value參數(shù)的元素)的值(已去除空格)。對(duì)于checkbox/radio元素,其值為”on”還是”off”依賴于該元素是否被選中。
參數(shù):
????·locator?-?一個(gè)元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??元素值,對(duì)于checkbox/radio元素則為”on/off”
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertValue (locator,pattern)
??·assertNotValue (locator,pattern)
??·verifyValue (locator,pattern)
??·verifyNotValue (locator,pattern)
??·waitForValue (locator,pattern)
??·waitForNotValue (locator,pattern)
storeWhetherThisFrameMatchFrameExpression(currenFrameString,target,variableName)
確定當(dāng)前框架是否包含該運(yùn)行代碼。
這對(duì)于代理注入代碼模式非常有用,這些代碼在每個(gè)瀏覽器框架和窗體中運(yùn)行,有時(shí)selenium server需要識(shí)別當(dāng)前是哪個(gè)框架。這種情況下,當(dāng)測試調(diào)用selectFrame,該程序?qū)⒈幻總€(gè)框架調(diào)用以指出哪個(gè)框架被選擇。被選擇的框架將返回true,而其他將返回false。
參數(shù):
????·currenFrameString –?開始框架
????·target –?新框架(也許與當(dāng)前框架相關(guān)聯(lián))
????·variableName -用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果新框架為該代碼的窗體,返回true
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
??·assertNotWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
??·verifyWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
??·verifyNotWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
??·waitForWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
??·waitForNotWhetherThisFrameMatchFrameExpression (currenFrameString,?target)
storeWhetherThisWindowMatchWindowExpression(currenWindowString,target,variableName)
確定當(dāng)前窗體是否包含該運(yùn)行代碼。
這對(duì)于代理注入代碼模式非常有用,這些代碼在每個(gè)瀏覽器框架和窗體中運(yùn)行,有時(shí)selenium server需要識(shí)別當(dāng)前是哪個(gè)窗體。這種情況下,當(dāng)測試調(diào)用selectWindow,該程序?qū)⒈幻總€(gè)窗體調(diào)用以指出哪個(gè)窗體被選擇。被選擇的窗體將返回true,而其他將返回false。
參數(shù):
????·currenFrameString –?開始窗體
????·target –?新窗體(也許與當(dāng)前窗體相關(guān)聯(lián),如,”_parent”)
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果新窗體為該代碼的窗體,返回true
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
??·assertNotWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
??·verifyWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
??·verifyNotWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
??·waitForWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
??·waitForNotWhetherThisWindowMatchWindowExpression (currenWindowString,?target)
storeXpathCount(xpath,variableName)
返回匹配指定xpath的節(jié)點(diǎn)數(shù),如”//table”將給出表的個(gè)數(shù)。
參數(shù):
·xpath –?要計(jì)算的xpath表達(dá)式。不要用’count()’函數(shù)將該表達(dá)式包含起來,我們將自動(dòng)幫你作這件事。
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??匹配指定xpath的節(jié)點(diǎn)數(shù)
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertXpathCount (xpath,?pattern)
??·assertNotXpathCount (xpath,?pattern)
??·verifyXpathCount (xpath,?pattern)
??·verifyNotXpathCount (xpath,?pattern)
??·waitForXpathCount (xpath,?pattern)
??·waitForNotXpathCount (xpath,?pattern)
storeAlertPresent(variableName)
發(fā)生警告了?
該函數(shù)永遠(yuǎn)不會(huì)拋出異常
Returns:
??如果有警告返回true
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertAlertPresent ()
??·assertNotAlertPresent ()
??·verifyAlertPresent ()
??·verifyNotAlertPresent ()
??·waitForAlertPresent ()
??·waitForNotAlertPresent ()
storeChecked(locator,variableName)
獲取一個(gè)關(guān)聯(lián)性按鈕(checkbox/radio)是否被勾選。如果指定元素不存在或不是一個(gè)關(guān)聯(lián)性按鈕,將失敗。
參數(shù):
????·locator–?一個(gè)執(zhí)行checkbox或radio按鈕的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果該checkbox被勾選,返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertChecked (locator)
??·assertNotChecked (locator)
??·verifyChecked (locator)
??·verifyNotChecked (locator)
??·waitForChecked (locator)
??·waitForNotChecked (locator)
storeConfirmationPresent(variableName)
confirm()被調(diào)用了?
該函數(shù)永遠(yuǎn)不會(huì)拋出異常
Returns:
??如果有一個(gè)未決的確認(rèn)返回true
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertConfirmationPresent ()
??·assertNotConfirmationPresent ()
??·verifyConfirmationPresent ()
??·verifyNotConfirmationPresent ()
??·waitForConfirmationPresent ()
??·waitForNotConfirmationPresent ()
storeEditable(locator,variableName)
判定指定的輸入元素是否為可編輯,且ie沒有被禁用。如果指定元素不為一個(gè)可輸入元素,該函數(shù)將失敗。
參數(shù):
????·locator –?一個(gè)元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果輸入元素可編輯返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertEditable (locator)
??·assertNotEditable (locator)
??·verifyEditable (locator)
??·verifyNotEditable (locator)
??·waitForEditable (locator)
??·waitForNotEditable (locator)
storeElementPresent(locator,variableName)
驗(yàn)證指定元素在頁面上。
參數(shù):
????·locator –?一個(gè)元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果該元素出現(xiàn)返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertElementPresent (locator)
??·assertNotElementPresent (locator)
??·verifyElementPresent (locator)
??·verifyNotElementPresent (locator)
??·waitForElementPresent (locator)
??·waitForNotElementPresent (locator)
storeOrdered(locator1,locator2,variableName)
檢查這兩個(gè)元素是否有相同的父級(jí),且在DOM中為順序親屬。兩個(gè)相同元素將不考慮順序。
參數(shù):
????·locator1 –?指向第一個(gè)元素的元素定位器
????·locator2 –?指向第二個(gè)元素的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果元素1是元素2的兄長,返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertOrdered (locator1,locator2)
??·assertNotOrdered (locator1,locator2)
??·verifyOrdered (locator1,locator2)
??·verifyNotOrdered (locator1,locator2)
??·waitForOrdered (locator1,locator2)
??·waitForNotOrdered (locator1,locator2)
storePromptPresent(variableName)
發(fā)生提示了?
該函數(shù)永遠(yuǎn)不會(huì)拋出異常
Returns:
??如果有一個(gè)未決的提示返回true
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertPromptPresent ()
??·assertNotPromptPresent ()
??·verifyPromptPresent ()
??·verifyNotPromptPresent ()
??·waitForPromptPresent ()
??·waitForNotPromptPresent ()
storeSomethingSelected(selectLocator,variableName)
判定一個(gè)下拉菜單是否選擇了某個(gè)選項(xiàng)。
參數(shù):
????·selectLocator –?一個(gè)用于識(shí)別下拉菜單的元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果選擇某選項(xiàng)返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertSomethingSelected (selectLocator)
??·assertNotSomethingSelected (selectLocator)
??·verifySomethingSelected (selectLocator)
??·verifyNotSomethingSelected (selectLocator)
??·waitForSomethingSelected (selectLocator)
??·waitForNotSomethingSelected (selectLocator)
storeTextPresent(pattern,variableName)
驗(yàn)證指定文本出現(xiàn)在提交給用戶的頁面上。
參數(shù):
????·pattern –?用于匹配頁面文本的范式
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果該范式匹配文本返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertTextPresent (pattern)
??·assertNotTextPresent (pattern)
??·verifyTextPresent (pattern)
??·verifyNotTextPresent (pattern)
??·waitForTextPresent (pattern)
??·waitForNotTextPresent (pattern)
storeVisible(locator,variableName)
判定指定元素是否可見。一個(gè)元素可以通過將其本身或其父級(jí)的CSS”visibility”屬性設(shè)定為”hidden”,或?qū)ⅰ眃ispaly”屬性設(shè)定為”none”,以使其不可見。如果該元素不存在,此方法將失敗。
參數(shù):
????·locator –?一個(gè)元素定位器
????·variableName -?用于存儲(chǔ)結(jié)果的變量名。
Returns:
??如果指定元素為可見返回true,否則返回false
同斷言相關(guān)聯(lián),自動(dòng)生成:
????·assertVisible (locator)
??·assertNotVisible (locator)
??·verifyVisible (locator)
??·verifyNotVisible (locator)
??·waitForVisible (locator)
??·waitForNotVisible (locator)
參數(shù)解釋和變量
轉(zhuǎn)載于:https://www.cnblogs.com/xh0203/p/5855406.html
總結(jié)
以上是生活随笔為你收集整理的Selenium 中文API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CreateProcess
- 下一篇: SPSS输出的结果都要写到文章中吗