Tim*_*Tim 4 xlsx angular cypress
我有一个前端 Angular 应用程序,在其中实现 Cypress 测试。
但 XLSX 文件的读取并不总是正确。
如果我这样做:
cy.readFile('cypress/downloads/myfile.XLSX');
Run Code Online (Sandbox Code Playgroud)
它实际上确实按预期读取了文件。
但是如果我这样做:
cy.readFile('cypress/downloads/myfile.XLSX').should('contain', 'mytext');
Run Code Online (Sandbox Code Playgroud)
即使我知道它在文件中,它也不会读取“mytext”。
我知道我在语法上是正确的,因为它可以很好地读取 .xls 文件中的文本。
有什么方法可以让 cypress 查找带有 .XLSX 文件的文本吗?
非常感谢。
SheetJS包可用于在读取并编码后解析XLSX文件base64
在下面的示例中,我使用了一个仅包含文本的小工作表
阅读该文件后,我将其转换为 HTML,以便可以将其安装在 Cypress 测试页面中。
测试运行器显示数据,并且可以像网页一样查询。
const XLSX = require('xlsx')
it('reads and tests an XL file', () => {
cy.readFile('cypress/downloads/file_example_XLS_10.xlsx', 'base64')
.then(file => {
// parse to HTML
const data = XLSX.read(file)
const worksheet = data.Sheets['Sheet1']
const html = XLSX.utils.sheet_to_html(worksheet)
// mount to test page
const worksheetAsTable = Cypress.$(html)
Cypress.$('body').empty()
Cypress.$('body').append(worksheetAsTable)
})
// Now test the HTML table with Cypress commands
cy.get('table tr:nth-child(3) td:nth-child(3)')
.invoke('text')
.should('eq', 'Hashimoto')
// Or simply assert the text is present
cy.get('body').should('contain', 'Hashimoto')
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |