我已经成功地使用Puppeteer开发了一个带有Reactjs应用程序的Nodejs集成测试,但是遇到了一个问题,我想测试不同输入的类型。
我为标题输入了一个内容,为主题,电子邮件正文和电子邮件接收者输入了另一个内容,但它们都是输入,没有类别绑定,而是像这样有一个名称绑定:
<input name="title"...
<input name="subject"...
<input name="body"...
以此类推。
我可以捕获该name
属性吗?如果可以,它的语法是什么,以便可以测试在这些输入中的键入。
这是我到目前为止的测试:
describe('And using valid inputs', async () => {
beforeEach(async () => {
await page.type('input', 'My Title')
})
test('Submitting takes user to review screen', async () => {
})
test('Submitting then saving adds survey to index page', async () => {
})
})
describe("And using invalid inputs", async () => {
beforeEach(async () => {
await page.click("form button.teal");
});
test("the form shows an error message", async () => {
const inputError = await page.getContentsOf(".red-text");
expect(inputError).toEqual("You must provide a value");
});
});
如您所见,我成功地将form
元素和类用于无效输入,但是现在我需要能够区分输入类型,以便成功完成输入元素的正确键入,我认为这本身await page.type('input', 'My Title')
无效。 Puppeteer怎么知道我要指的是哪种输入类型?
答案 0 :(得分:0)
您可以将name
视为属性。并使用带有该属性的CSS Selector来匹配输入。
await page.type('INPUT[name=err_email]', 'My Title')