zoukankan      html  css  js  c++  java
  • Puppeteer: 鼠标移动

    文档

    mouse.click 是 mouse.move,mouse.down 和 mouse.up 的快捷方式

    main.js

    const pptr = require('puppeteer');
    const gotoUrl = 'http://127.0.0.1:5500/index.html';
    
    (async () => {
      const browser = await pptr.launch({
        headless: false,
        slowMo: 250,
      });
      const page = await browser.newPage();
    
      page.on('console', msg => {
        console.log(msg.text());
      });
      await page.goto(gotoUrl);
    
      await page.mouse.move(100, 100);
    
      await page.mouse.down();
      await page.mouse.move(200, 100, {
        steps: 3,
      });
      await page.mouse.move(200, 200);
      await page.mouse.move(100, 200);
      await page.mouse.move(100, 100);
      await page.mouse.up();
    
      await page.mouse.move(150, 150);
      await page.mouse.down();
    
      setTimeout(async () => {
        await browser.close();
      }, 2000);
    })();
    

    index.html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
        <style>
          html,
          body {
            margin: 0;
          }
        </style>
      </head>
      <body>
        <script src="https://unpkg.com/p5@0.7.2/lib/p5.min.js"></script>
        <script src="https://unpkg.com/p5@0.7.2/lib/addons/p5.dom.min.js"></script>
        <script>
          let isButtonRight = false;
          let make = null;
          let root = null;
          let makeSize = null;
    
          function setup() {
            root = createDiv();
            createCanvas(600, 400)
              .parent(root)
              .id('js-canvas');
            background(0);
    
            makeSize = createVector(40, 40);
            createmake();
    
            document.getElementById('js-canvas').oncontextmenu = e =>
              e.preventDefault();
            document.getElementById('js-make').oncontextmenu = e =>
              e.preventDefault();
          }
    
          function draw() {
            if (mouseIsPressed) {
              // 鼠标按下画
              if (mouseIsPressed && mouseButton === LEFT) {
                // stroke(random(255), random(255), random(255));
                stroke('red');
                strokeWeight(4);
                line(
                  isButtonRight ? mouseX : pmouseX,
                  isButtonRight ? mouseY : pmouseY,
                  mouseX,
                  mouseY,
                );
                isButtonRight = false;
              } else if (mouseButton === RIGHT) {
                isButtonRight = true;
    
                //  if(keyCode === 18){// 按下 alt 相加
                //   makeSize.add(0.5, 0.5);
                // }else if(keyCode === 17){  // 按下 ctrl 相减
                //   makeSize.sub(0.5, 0.5);
                // }
                make.size(makeSize.x, makeSize.y);
                make.position(mouseX, mouseY).show();
    
                fill(0);
                noStroke();
                ellipseMode(CENTER);
                ellipse(mouseX, mouseY, makeSize.x);
              }
            }
    
            if (keyIsPressed) {
              // 按下空格键清空画布
              if (keyCode == 32) background(0);
            }
          }
    
          function mouseReleased() {
            if (mouseButton === RIGHT) {
              make.hide();
              makeSize = createVector(40, 40);
            }
          }
    
          // make在右键被呼起时才显示, 右键被抬起则隐藏
          function createmake() {
            make = createDiv()
              .parent(root)
              .id('js-make')
              .size(makeSize.x, makeSize.y)
              .style('background-color', '#fff')
              .style('border-radius', '50%')
              .style('transform', 'translate(-40%, -40%)')
              .hide();
          }
        </script>
      </body>
    </html>
    
  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/ajanuw/p/10976188.html
Copyright © 2011-2022 走看看