หน้าแรก เอกสาร บทช่วยสอน ลงชื่อเข้าใช้
Tutorial pages

บายพาส Recaptcha บนแบบฟอร์มที่มีการโทรกลับ กวดวิชา 2.


สิ่งที่คุณจะได้เรียนรู้

  • คุณจะได้เรียนรู้วิธีส่งแบบฟอร์ม นี้ ด้วย Recaptcha พร้อมสคริปต์ NodeJS
  • เรียนรู้ความแตกต่างระหว่างพื้นที่ข้อความที่ซ่อนอยู่ (hidden textarea) และวิธีการเรียกกลับ (callback)
  • เรียนรู้วิธีค้นหาการเรียก 'grecaptcha.render' ของจาวาสคริปต์อย่างถูกต้อง
Source code

วิดีโอนี้เน้นความแตกต่างในแนวทางจากบทแนะนำ ก่อนหน้า แทนที่จะวางโทเค็นการตอบสนอง g ลงใน textarea ของแบบฟอร์ม เราเรียกใช้ฟังก์ชัน "checkCaptcha" ซึ่งสามารถพบได้ในซอร์สโค้ดของหน้า

Javascript
          console.log('setting recaptcha g-response ...');
//await tab.$eval('#g-recaptcha-response', (element, token) => {
//  element.value = token;
//}, token);

await tab.evaluate((token) => {
  checkCaptcha(token);
}, token);
        

นอกจากนี้ยังไม่จำเป็นต้องกดปุ่มส่ง เนื่องจากการส่งจะเกิดขึ้นโดยอัตโนมัติหลังจากแก้ไข Recaptcha แล้ว

Javascript
          //comment out or remove it
//console.log('submitting form .. ');
//await Promise.all([
//  tab.click('#contentbox > form > div > div.tac.padding20px > button'),
//  tab.waitForNavigation({ waitUntil: "networkidle0" })
//]);
        

ใน กวดวิชา ถัดไป คุณจะได้เรียนรู้วิธีเลี่ยงผ่านแบบฟอร์มด้วย Recaptcha โดยที่ฟังก์ชันการเรียกกลับไม่ได้แยกออกจากการเรียก gresponse.render และเนื้อความของมันถูกเข้ารหัส