Guest User

Untitled

a guest
Nov 1st, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. const url = process.argv[2];
  2. //2captcha api key
  3. const key = process.argv[3];
  4. const proxy = process.argv[4];
  5.  
  6. //form data
  7. var fName = process.argv[5];
  8. var lName = process.argv[6];
  9. var name = process.argv[7];
  10. var email = process.argv[8];
  11. var password = process.argv[9]
  12. var address = process.argv[10];
  13. var city = process.argv[11];
  14. var country = process.argv[12];
  15. var countryShort = process.argv[13];
  16. var state = process.argv[14];
  17. var stateShort = process.argv[15];
  18. var zip = process.argv[16];
  19. var phone = process.argv[17];
  20. var size = process.argv[18];
  21. var cardNumber = process.argv[19];
  22. var cardName = process.argv[20];
  23. var cardExpire = process.argv[21];
  24. var cardExpireShort = process.argv[22];
  25. var cardExpireM = process.argv[23];
  26. var cardExpireY = process.argv[24];
  27. var cardCVV = process.argv[25];
  28. var proxyUser = process.argv[26];
  29. var proxyPass = process.argv[27];
  30. var slotId = process.argv[28];
  31. var instagram = process.argv[29];
  32. var instagramPass = process.argv[30];
  33. var raffleId = process.argv[31];
  34. var twitter = process.argv[32];
  35. var twitterPass = process.argv[33];
  36.  
  37. const puppeteer = require('puppeteer');
  38.  
  39. // folder path
  40. var folderName = 'html/images';
  41.  
  42. (async () => {
  43. const browser = await puppeteer.launch({
  44. args: ['--no-sandbox', '--disable-web-security', '--proxy-server=' + proxy],
  45. headless: true,
  46. // devtools: true
  47. });
  48. try {
  49. const page = await browser.newPage();
  50. await page.emulate({
  51. 'viewport': {
  52. 'width': 1200,
  53. 'height': 900,
  54. 'isMobile': false
  55. },
  56. 'userAgent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
  57. });
  58.  
  59. await page.authenticate({username: proxyUser , password: proxyPass });
  60.  
  61. await page.goto(url, {
  62. waitUntil: [ 'load', 'networkidle2', 'domcontentloaded' ],
  63. timeout: 60000
  64. });
  65.  
  66. await page.waitFor(10000);
  67.  
  68. var acceptCookies = await page.$('#pa-button-spacer > input');
  69. if (acceptCookies != null) {
  70. await page.click('#pa-button-spacer > input');
  71. }
  72.  
  73. var frames = await page.frames();
  74. var myframe = frames.find(f => f.url().indexOf("dotmailer-surveys.com") > 0);
  75.  
  76. // Consent
  77. await myframe.click('input[name="50"]');
  78.  
  79. // Email Name
  80. await myframe.focus('#emailaddress-1');
  81.  
  82. for (let i = 0; i < email.length; i++) {
  83. var rand = Math.floor((Math.random() * 100) + 50);
  84. await page.keyboard.press(email.charAt(i), {delay: rand});
  85. }
  86.  
  87. // First Name
  88. await myframe.focus('#textbox-51');
  89.  
  90. for (let i = 0; i < fName.length; i++) {
  91. var rand = Math.floor((Math.random() * 100) + 50);
  92. await page.keyboard.press(fName.charAt(i), {delay: rand});
  93. }
  94.  
  95. // Last Name
  96. await myframe.focus('#textbox-52');
  97.  
  98. for (let i = 0; i < lName.length; i++) {
  99. var rand = Math.floor((Math.random() * 100) + 50);
  100. await page.keyboard.press(lName.charAt(i), {delay: rand});
  101. }
  102.  
  103. // instagram
  104. await myframe.focus('#textbox-53');
  105.  
  106. for (let i = 0; i < instagram.length; i++) {
  107. var rand = Math.floor((Math.random() * 100) + 50);
  108. await page.keyboard.press(instagram.charAt(i), {delay: rand});
  109. }
  110.  
  111. // twitter
  112. await myframe.focus('#textbox-54');
  113.  
  114. for (let i = 0; i < twitter.length; i++) {
  115. var rand = Math.floor((Math.random() * 100) + 50);
  116. await page.keyboard.press(twitter.charAt(i), {delay: rand});
  117. }
  118.  
  119. // Country Select
  120. await myframe.focus('#dropdownlist-55');
  121.  
  122. for (let i = 0; i < country.length; i++) {
  123. var rand = Math.floor((Math.random() * 100) + 50);
  124. await page.keyboard.press(country.charAt(i), {delay: rand});
  125. }
  126.  
  127. // Size Select
  128. await myframe.focus('#dropdownlist-56');
  129.  
  130. await myframe.evaluate((size) => {
  131. var sizeSelector = $('#dropdownlist-56').children('option');
  132. if (sizeSelector != undefined) {
  133. sizeSelector.each( function() {
  134. var sizeText = $(this).text();
  135. if (sizeText != undefined && sizeText == "US " + size + "") {
  136. $(this).first().attr('selected','selected');
  137. }
  138. if (sizeText != undefined && sizeText == "UK " + size + "") {
  139. $(this).first().attr('selected','selected');
  140. }
  141. });
  142. }
  143. },size);
  144.  
  145. await page.waitFor(1000);
  146.  
  147. await page.screenshot({path: folderName + "/" + slotId + '-' + raffleId + "-stage1" + '.png', fullPage: true});
  148. await myframe.click("input[type='submit']");
  149.  
  150. // wait + screenshot
  151. await page.waitForNavigation({ waitUntil: [ 'load', 'networkidle2', 'domcontentloaded' ], timeout: 60000 });
  152.  
  153. await page.screenshot({path: folderName + "/" + slotId + '-' + raffleId + "-stage2" + '.png', fullPage: true});
  154.  
  155. await browser.close();
  156. } catch(e) {
  157. console.log(e)
  158. process.exit();
  159. }
  160. finally {
  161. console.log('success');
  162. await browser.close();
  163. }
  164. })();
Add Comment
Please, Sign In to add comment