Puppeteer page.type () не работает при попытке ввести значение в поле ввода - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь научиться работать с кукловодом и хочу ввести строку в это поле ввода.

<input ng-if="::!deliveryFullAddressSelection" auto-focus="!showMultipleDeliveryAddresses" ng-model="delivery.postalCode" type="text" class="input ng-pristine ng-untouched ng-valid ng-scope ng-empty ng-valid-pattern" placeholder="Enter Zip Code" aria-label="Enter Zip Code" id="shopping-selector-postal-code" pattern="^[0-9][0-9][0-9][0-9][0-9]$" aria-invalid="false">

С помощью следующего кода:


      //Wait for page to load
      await self.page.waitForNavigation({ waitUntil: "networkidle0" });

      let deliveryButton = await self.page.$(
        "button#shopping-selector-shop-context-intent-delivery"
      );

      if (deliveryButton) {
        await deliveryButton.click();
        await self.page.waitForNavigation({ waitUntil: "networkidle0" });

        await self.page.waitForSelector("input#shopping-selector-postal-code", {
          visible: true,
        });

        //await self.page.click("input#shopping-selector-postal-code");
        //await self.page.focus("input#shopping-selector-postal-code");
        //await self.page.keyboard.type("1234", { delay: 30 });
        //await self.page.type("input#shopping-selector-postal-code", "12345", {delay: 30,});
        /*
        await self.page.$eval(
          "input#shopping-selector-postal-code",
          (elem) => (elem.value = "12345")
        );
        */

Я пробовал разные способы ввода своих значений и комментировал их. Я чувствую, что это связано с использованием Angular, но я изо всех сил пытаюсь выяснить, почему это не работает. Кажется, он не фокусируется, хотя я читал, что type () должен фокусироваться на том, что выбрано.

Редактировать: Закончилось поиском проблемы. Я ждал навигации, хотя после нажатия на кнопку он никуда не перемещался, поскольку он только открывал новое приглашение. Вместо этого я просто жду только селектора и, как только он загрузится, я могу набрать внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...