cypress在我的印象里,比selenium更易於理解。定位更准確,每一個步驟有生成快照,方便查看運行結果。
cypress和其他的UI自動化測試工具一樣,最開始都要能夠定位到界面元素。而定位界面元素的方法中,我印象中使用過xpath,坐標定位,document,但是往往界面的些許改動就容易影響代碼的運行。所以cypress在這里做了一些改進。盡量避免界面元素定位失敗。
1】cypress的元素定位
1、cy.get(selector) ,selector是DOM元素。
使用方法:
2、contains(content)
contains(selector,content ) , content是DOM的文本內容
使用方法:
這里有一點需要注意的是,文本必須是當前頁面的唯一值,當前頁面有多個相同的文本值時,cypress只匹配第一個文本。
3、在定位列表中的字段時,可以使用cy.get('form>div>tr>td')的方式定位到第一行第一個值。
4、要定位的元素實在沒有唯一值時,也可以根據上下文定位。比如cy.get(id).next() 可以定位到get('#id')元素的下一個元素。
cy.get('#id').children()定位到子元素。
cy. get('#id').children().first()定位到第一個子元素。
2】點擊
.click() 單擊
.click({force:true}) 強制單擊
.dbclick()雙擊
3】寫入
.type(text)
4】斷言
.should(chainers) ,chainers表示特定的語句
.should(chainers,value)表示斷言的期望值
.should(chainers,method,value)一般用於斷言元素的屬性值
以上語法可以cypress對UI界面的操作,當然如果前台代碼不規范的時候,找元素會費事一些,但是通過上下文元素也是都可以定位到。