私はそれが1つまたは別の文字列を含むかどうかを見るためにいくつかのサイプレスアサーションをやろうとしています。それは英語またはスペイン語であり得るので、どちらかがテストに合格するべきです。
cy.get(el).should('contain', 'submit').or('contain', 'enviar')
_
明らかに仕事をしません。
const runout = ['submit', 'enviar']
const el = '[data-test=btn-submit]'
function checkArray(arr, el) {
for(let i = 0; i < arr.length; i++) {
if(cy.get(el).contains(arr[i])) {
return true
} else {
if (i === arr.length) {
return false
}
}
}
}
cy.expect(checkArray(runout,el)).to.be.true
_
テストに失敗し、まだ両方の文字列をチェックします。
多分このようにして「または」をチェックすることができます。私はGoogleホームページをテストし、テストで「Google検索」または「Google検索ではない」のどちらかを検索しようとしました。どちらも見つからない場合はエラーが発生します。
describe('check if contains one of the text', function()
{
it('Test google search button on google homepage',()=> {
let url = 'https://www.google.com/';
let Word1 = 'Not Google Search';
let Word2 = 'Google Search';
cy.visit(url);
cy.get('input[value="Google Search"]').invoke('attr','value').then((text)=>{
if (text=== Word1) {
console.log('found google not search');
}
else if (text === Word2) {
console.log('found google search');
}
else {
console.log(text);
throw ("cannot find any of them");
}
})
})
})
_
テストケースでは、ワード2が見つかりましたので、コンソールに 'found Google Search'をログに記録しました。