如何使用 puppeteer 输入美元金额?

How to enter a dollar amount with puppeteer?

我目前正在使用 puppeteer 编写一个脚本,让我自动登录到 PayPal 并将所需的美元金额发送给一个人。我已经成功地让脚本登录并将其自身重定向到将输入美元金额的指定页面。

页面加载时自动选择被聚焦的元素。我已经尝试了不同的方法让脚本输入下面显示的所需数量,但没有任何运气让它工作。

被聚焦的元素:

<input data-nemo="amount" dir="ltr" autocomplete="off" type="tel" name="amount" id="fn-amount" required="" class="ppaf-input ppaf-with-hidden-cursor" value="0.00" style="width: 86px; font-size: 42px; font-family: PayPal-Sans-Big, sans-serif;"> 

在键入所需的美元金额之前重定向到页面的脚本:

await page.waitFor(10000);
await page.goto('https://www.paypal.com/myaccount/transfer/homepage/external/summary?.......');

到目前为止我尝试过的:

1. const cookie = {
   name: 'amount',
   value: '0.01',
   domain: '.paypal.com'
};
await page.setCookie(cookie);


2. await page.type('0.01')

3. await page.focus('#amount');
   await page.keyboard.type('0.01');

4. await page.$eval('input[name=amount]', el => el.value = '0.01');

5. await page.$eval('#amount', el => el.value = '0.01');

6. await page.waitForSelector('#amount');
   await page.type('amount', '0.01', {delay: 5});

抛出的错误是:

 No node found for selector: #amount

等待选择器时抛出的错误:

UnhandledPromiseRejectionWarning: TimeoutError: waiting for 
selector "#amount" failed: timeout 30000ms exceeded

解决方法如下:

    await page.goto('https://www.paypal.com/myaccount/transfer/homepage/external/summary?.');
    await page.waitForSelector('#fn-amount');
    await page.type('#fn-amount', '0.01');

page 上尝试过,但 ID 为 #amount