5-1 如何读取iframe

  1. # 1-1找到iframe
  2. var iframe = await page.waitForSelector("#id")
  3. var iframe = await page.$("#id");
  4. # 1-2获取iframe中的内容 contentFrame()
  5. var frame = await iframe.contentFrame();

5-2 koa中如何实现跨域

  1. https://www.npmjs.com/package/koa2-cors
  2. cnpm i koa2-cors -S
  3. const cors = require("koa2-cors");
  4. app.use(cors());

5-3 iframe阿里云验证

实现阿里云的滑块验证

  1. # boundingBox() 可以获取元素位置,width-height相关的信息
  2. # page.mouse.move()
  3. # page.mouse.down();
  4. # page.mouse.up();
  5. const url = "https://account.aliyun.com/register/register.html"
  6. const puppeteer = require("puppeteer");
  7. async function show(){
  8. const browser =await puppeteer.launch({
  9. headless:false,
  10. defaultViewport:null
  11. })
  12. const page = await browser.newPage();
  13. await page.goto(url)
  14. var iframe = await page.$("#alibaba-register-box");
  15. var frame = await iframe.contentFrame();
  16. var span = await frame.waitForSelector("#nc_1__scale_text");
  17. var position = await span.boundingBox();
  18. await page.mouse.move(position.x,position.y);
  19. await page.mouse.down();
  20. for(var i=0;i<position.width;i++){
  21. await page.mouse.move(position.x+i,position.y);
  22. }
  23. await page.mouse.up();
  24. console.log(position)
  25. }
  26. show()