#cypress
Вопрос:
Ниже приведен мой код в cypress. Как распечатать содержимое в формате pdf и проверить содержимое с помощью cypress .contains или .eq? когда я запускаю код, он печатает объект {6}, но я хочу распечатать содержимое моего PDF-файла. Я был бы очень признателен за помощь.
**Plugins/index.js:**
const fs = require('fs')
const pdf = require('pdf-parse')
const path = require('path')
const repoRoot = path.join("C:/Users/XXXXX/Downloads/loginCy-excel")
const parsePdf = async (pdfName) => {
const pdfPathname = path.join(repoRoot, pdfName)
let dataBuffer = fs.readFileSync(pdfPathname);
return await pdf(dataBuffer)
}
module.exports = (on, config) => {
on('task', {
getPdfContent (pdfName) {
return parsePdf(pdfName)
},
})
}
**cypress spec file has these code:**
it('tests a pdf', () => {
cy.task('getPdfContent', 'sample.pdf').then(content => {
cy.log(content)
})
})
Ответ №1:
pdf
метод вернет объект, поэтому я думаю cy.log()
, что не смогу распечатать его таким образом. Если вы хотите увидеть, что функция собрала в вашем PDF-файле, вы можете упорядочить результат:
cy
.log(JSON.stringify(content));
Если вы хотите получить только текст из вашего PDF-файла, вам нужно поработать с text
property:
cy
.log(content.text);
Комментарии:
1. Спасибо за ответ @pavelsaman Как я могу добавить утверждение для проверки конкретного текста, присутствующего в PDF? Я не могу этого сделать: cy.log(content.text). должен (‘have.text’, ‘Hello’) Как я могу добавить утверждение?
2. Сначала прочитайте документацию docs.cypress.io/guides/references/assertions
3. Из документа Cypress, которым вы поделились, я получил это утверждение. Есть мысли? cy.wrap(content.text). следует (‘have.string’, ‘Hello World!’) ожидать (content.text).to.have.string(‘Привет, мир!’)
4. Они работают так, как ожидалось? Правильно ли они сообщают «нет совпадения»?