// 每一 describe 就是一個測試套件 // 每一 it 就是一個測試命令 describe('Save Log and Filter', ()=>{ beforeEach(() => { cy.visit('https://REDACTED-HOST/files'); cy.login(); cy.visit('https://REDACTED-HOST/files'); }); it('save log', () => { // enter log cy.url().should('include', 'files'); cy.contains('.fileName', 'random').dblclick(); // 選取 'random' log 檔 cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 cy.url().should('include', 'discover/logs'); // 斷言在 discover/logs/:id 路徑 cy.wait(3000) // select radio cy.get('#iconFilter').click(); // 選取 Filter sidebar cy.get('input#Sequence0').should('be.checked'); // 選取 Radio 'Sequence' cy.contains('label', 'Have activity(s)') // 選取 Radio 'Have activity(s)' .prev(2) .find('input') .should('have.attr', 'type', 'radio') // select the previous element .should('be.checked'); // confirm it's type radio (optional) // select table item cy.get('.allCheckboxAct') // 選取 all select .find('input') .should('not.be.visible').check({ force: true}).should('be.checked'); // 打開隱藏項目並選取 // click Alpay and click Alppy All cy.contains('button', 'Apply').click(); cy.get('#tabFunnel').click(); cy.contains('.p-timeline', 'Sequence'); cy.contains('button', 'Apply All').click(); // Save log cy.contains('button', 'Save').click(); cy.contains('.swal2-title', 'SAVE NEW FILTER'); cy.contains('button', 'OK').click(); cy.contains('#swal2-validation-message', 'You need to write something!'); // 不輸入要跳驗證 cy.get('.swal2-input').clear().type('random-E2Etesting'); cy.contains('button', 'OK').click(); cy.contains('#swal2-html-container', 'random-E2Etesting'); // 回到 Files 檢查是否有新增 Filter 'random-E2Etesting'. cy.visit('https://REDACTED-HOST/files'); cy.url().should('include', 'files'); cy.contains('.fileName', 'random-E2Etesting'); }); }); // 進入 fils 頁 // 點擊 log / 點擊 filter // 斷言: 編寫程式碼時,我們總是會做出一些假設,斷言就是用於在程式碼中捕捉這些假設。使用時機在該表達式值為真時使用。 // 沒有操作 // 有操作沒存檔 // 有操作有存檔 // 有操作重複存檔 // 有重複操作 沒有存檔 // Funnle 規則檢查 // dbclick() 雙擊 // 多選 單選 // npx cypress run --spec "cypress/e2e/saveLogAndFilter.cy.js" // 分 無頭模式/瀏覽器介面模式,無頭模式更快,因為不用渲染瀏覽器介面 // 上傳文件 // $npm install --save cypress-file-upload