在Selenium IDE中,如定位器,模式是selenium中經(jīng)常使用的一種類(lèi)型的參數(shù)。它允許用戶描述特殊字符的模式。很多時(shí)候,我們想核實(shí)文字是動(dòng)態(tài)的,在這種情況下,模式匹配是非常有用的。
模式匹配是用于所有驗(yàn)證點(diǎn)命令 - VerifyTextPresent,verifyTitle,verifyAlert,assertConfirmation,verifyText和verifyPrompt
有三種方法來(lái)定義一個(gè)模式 - 通配符,正則表達(dá)式和精確。
通配已經(jīng)在Linux或Windows使用的文件匹配模式,而尋找一個(gè)特定的文件類(lèi)型,如* doc或*.JPG,大多數(shù)技術(shù)人員。但通配硒只支持三個(gè)特殊字符:*,?和[]。
* - 匹配任何數(shù)目的字符。
? - 匹配單個(gè)字符。
[ ] - 所謂字符類(lèi),可以匹配括號(hào)內(nèi)發(fā)現(xiàn)的任何單個(gè)字符。 [0-9]匹配任何數(shù)字
要指定selenium 命令glob,前綴與關(guān)鍵字的模式'glob :“。例如,如果想搜索的文本“tax year 2013”或“tax year 2014”,那么可以使用“tax year *”來(lái)代替,如下圖所示。
然而關(guān)鍵字的用法“glob:”是可選的,而指定文本模式,因?yàn)镾elenium的匹配模式是默認(rèn)。
| 命令 | 目標(biāo) | 值 |
|---|---|---|
| clickAndWait | link=search | |
| verifyTextPresent | glob: tax year * |
模式帶有前綴“exact:'能匹配給定的文本。用戶希望字符串值精確匹配,即沒(méi)有g(shù)lobe 的操作符,我們可以使用“exact”的模式如下圖所示。在這個(gè)例子中,操作符'*'將作為普通字符,而不是一個(gè)模式匹配通配符。
| 命令 | 目標(biāo) | 值 |
|---|---|---|
| clickAndWait | link=search | |
| verifyValue | exact: *.doc |
正則表達(dá)式是當(dāng)中匹配技術(shù)中可用的模式是最有用的。Selenium 支持完整的Java語(yǔ)言支持reugular表達(dá)模式。因此,用戶通過(guò)不再受限于*,?和[]匹配模式。
要使用正則表達(dá)式模式,我們需要與任何前綴“regexp:”或“regexpi”。前綴“regexpi”是不區(qū)分大小寫(xiě)的。 glob: 和exact: 模式是正則表達(dá)式模式的子集。一切完成使用 glob: 和exact:可以完成與正則表達(dá)式。
例如,下面將測(cè)試,如果與ID“name”輸入的字段中包含字符串“tax year”,'Tax Year' 或 'tax Year'。
| 命令 | 目標(biāo) | 值 |
|---|---|---|
| clickAndWait | link=search | |
| verifyValue | id=name | regexp:[Tt]ax ([Yy]ear) |