Как определить вход без класса для тестирования с Puppeteer? - PullRequest
0 голосов
/ 30 апреля 2019

Я успешно разрабатываю интеграционные тесты с Puppeteer для приложения Nodejs с Reactjs, но я столкнулся с проблемой, когда хочу проверить ввод на разных входах.

У меня есть ввод для заголовка,другой для темы, тела письма и получателя электронной почты, но все они являются входными данными без привязанного к ним класса, вместо этого у них есть имя, связанное с ними, например:

<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 узнает, какой тип ввода я имею в виду?

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете рассматривать name как атрибут.И используйте CSS Selector , используя этот атрибут, чтобы соответствовать вводу.

await page.type('INPUT[name=err_email]', 'My Title')
...