如何使用伪造者输入美元金额?

时间:2019-07-11 23:17:57

标签: javascript 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

1 个答案:

答案 0 :(得分:0)

这是解决方案:

    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