JavaScript实现浏览器网页自动滚动并点击的示例代码


Posted in Javascript onDecember 05, 2020

1. 打开浏览器控制台窗口

JavaScript通常是作为开发Web页面的脚本语言,本文介绍的JavaScript代码均运行在指定网站的控制台窗口。一般浏览器的开发者窗口都可以通过在当前网页界面按F12快捷键调出,然后在上面的标签栏找到Console点击就是控制台窗口,在这里可以直接执行JavaScript代码,而chrome系浏览器的控制台界面可以使用快捷键Ctrl+Shift+J直接打开

2. 实时查看鼠标坐标

首先为了获取当前的鼠标位置的x、y坐标,需要先重写一个onmousemove函数来帮助我们实时查看光标处的x、y值,方便下一步编写代码时确定初始的y坐标和每次y方向滚动的距离

// 在控制台输入以下内容并回车,即可查看当前鼠标位置
// 具体查看方式:鼠标在网页上滑动时无效果,当鼠标悬停时即可在光标旁边看到此处的坐标
document.onmousemove = function(e){
 var x = e.pageX;
 var y = e.pageY;
 e.target.title = "X is "+x+" and Y is "+y;
};

3. 编写自动滚动代码

具体代码如下,将代码粘贴进控制台并回车,然后调用auto_scroll()函数(具体参数含义在代码注释查看)即可运行

// y轴是在滚动的,每次不一样;x坐标也每次从这些里面随机一个
var random_x = [603, 811, 672, 894, 999, 931, 970, 1001, 1037, 1076, 1094];
// 初始y坐标
var position = 200;
// 最大执行max_num次就多休眠一下
var max_num = 20;
// 单位是秒,每当cnt%max_num为0时就休眠指定时间(从数组中任选一个),单位是秒
var sleep_interval = [33, 23, 47, 37, 21, 28, 30, 16, 44];
// 当前正在执行第几次
var cnt = 0;

// 相当于random_choice的功能
function choose(choices)
{
 var index = Math.floor(Math.random() * choices.length);
 return choices[index];
};

// 相当于广泛的random,返回浮点数
function random(min_value, max_value)
{
 return min_value + Math.random() * (max_value - min_value);
};

// 模拟点击鼠标
function click(x, y)
{
 // x = x - window.pageXOffset;
 // y = y - window.pageYOffset;
 y = y + 200;
 try {
  var ele = document.elementFromPoint(x, y);
  ele.click();
  console.log("坐标 ("+x+", "+y+") 被点击");
 } catch (error) {
  console.log("坐标 ("+x+", "+y+") 处不存在元素,无法点击")
 }
};

// 定时器的含参回调函数
function setTimeout_func_range(time_min, time_max, step_min, step_max, short_sleep=true)
{
 if(cnt<max_num)
 {
  cnt = cnt + 1;
  if(short_sleep)
  {
   // 短休眠
   position = position + random(step_min, step_max);
   x = choose(random_x);
   scroll(x, position);
   console.log("滚动到坐标("+x+", "+position+")");
   click(x, position);
   time = random(time_min, time_max)*1000;
   console.log("开始" + time/1000 + 's休眠');
   setTimeout(setTimeout_func_range, time, time_min, time_max, step_min, step_max);
   // console.log(time/1000 + 's休眠已经结束');
  }else
  {
   // 长休眠,且不滑动,的回调函数
   time = random(time_min, time_max)*1000;
   console.log("开始" + time/1000 + 's休眠');
   setTimeout(setTimeout_func_range, time, time_min, time_max, step_min, step_max);
   // console.log(time/1000 + 's休眠已经结束');
  }
 }else
 {
  cnt = 0;
  console.log("一轮共计"+max_num+"次点击结束");
  time = choose(sleep_interval)*1000;
  console.log("开始" + time/1000 + 's休眠');
  setTimeout(setTimeout_func_range, time, time_min, time_max, step_min, step_max, false);
  // console.log(time/1000 + 's休眠已经结束(长休眠且不滑动)');
 }
};

// 自动滚动网页的启动函数
// auto_scroll(5, 10, 50, 200)表示每隔5~10秒滚动一次;每次滚动的距离为50~200高度
function auto_scroll(time_min, time_max, step_min, step_max)
{
 time = random(time_min, time_max)*1000;
 console.log("开始" + time/1000 + 's休眠');
 setTimeout(setTimeout_func_range, time, time_min, time_max, step_min, step_max);
 // console.log(time/1000 + 's休眠已经结束');
};

/*
---------以下内容无需用到,根据情况使用----------
// 自定义click的回调函数
// 若绑定到元素,则点击该元素会出现此效果
function click_func(e)
{
 var a = new Array("富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善");
 var $i = $("<span></span>").text(a[a_idx]);
 a_idx = (a_idx + 1) % a.length;
 var x = e.pageX,
 y = e.pageY;
 $i.css({
  "z-index": 999999999999999999999999999999999999999999999999999999999999999999999,
  "top": y - 20,
  "left": x,
  "position": "absolute",
  "font-weight": "bold",
  "color": "rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"
 });
 $("body").append($i);
 $i.animate({
  "top": y - 180,
  "opacity": 0
 },
 1500,
 function() {
  $i.remove();
 });
};


// 在控制台输入以下内容,即可查看当前鼠标位置
document.onmousemove = function(e){
 var x = e.pageX;
 var y = e.pageY;
 e.target.title = "X is "+x+" and Y is "+y;
};
*/

代码运行效果如下

JavaScript实现浏览器网页自动滚动并点击的示例代码

以上就是JavaScript实现浏览器网页的自动滚动并点击的示例代码的详细内容,更多关于JavaScript 浏览器自动滚动点击的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
用javascript实现读取txt文档的脚本
Jul 20 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
May 30 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
微信小程序之分享页面如何返回首页的示例
Mar 28 Javascript
JavaScript插入排序算法原理与实现方法示例
Aug 06 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
Nov 25 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
解决vue下载后台传过来的乱码流的问题
Dec 05 #Vue.js
js获取图片的base64编码并压缩
Dec 05 #Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 #Javascript
可拖拽组件slider.js使用方法详解
Dec 04 #Javascript
js实现复制粘贴的两种方法
Dec 04 #Javascript
echarts浮动显示单位的实现方法示例
Dec 04 #Javascript
JavaScript中条件语句的优化技巧总结
Dec 04 #Javascript
You might like
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
九年级体育教学反思
2014/01/23 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
jquery插件实现图片悬浮
2021/04/16 jQuery
整理Python中常用的conda命令操作
2021/06/15 Python
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android