JS实现问卷星自动填问卷脚本并在两秒自动提交功能

脚本只使用问卷星,多选题目前为选中任意选项数量!!!!!!!

最近看到很多群里都在发问卷连接,各种求帮忙,正好这两天没任务,尝试写了自动填问卷的脚本,类似的脚本网上已经有了,但是后来问卷星加了验证,并且多选题已经不能适用

脚本使用方式(以Firefox为例):

一:鼠标移动到浏览器地址栏下空白处,右键,新建书签

二:填写名称(任意),代码复制到地址栏中

三:打开问卷星连接,然后点击刚刚添加的书签,即可。

代码:

javascript: void (
 (function () {
 var hash = {};
 var a = document.evaluate('//input[(@type="radio") and not(@value="0")]//@name',
     document,
     null,
     XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
     null);
 if (a.snapshotLength){
  for (var i = 0; i < a.snapshotLength; i++) {
  if (!(a.snapshotItem(i).value in hash))
  hash[a.snapshotItem(i).value] = 0;
  hash[a.snapshotItem(i).value]++;
  }
  for (i in hash) {
  document.evaluate('//input[(@type="radio") and not(@value="0") and @name="' + i + '"]',
     document,
     null,
     XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
     null).snapshotItem(Math.floor(Math.random() * hash[i])).click();
  }
 }
 var array = new Array();
 var as = document.getElementsByTagName("a");
 var preName = "";
 var change = false;
 for(var i=0; i < as.length; i++){
  if(as[i].getAttribute("rel") != null && as[i].nextSibling.getAttribute("type") == "checkbox"){
  var name = as[i].nextSibling.getAttribute("name");
  var check = as[i].nextSibling.getAttribute("checked");
  if(check == "checked"){
   as[i].click();
  }
  if(preName == "" || preName == name){
   if(Math.random() * 10 > 5){
   as[i].click();
   change = true;
   }
  }
  var next = as[i + 1];
  if(next.getAttribute("rel") != null && next.nextSibling.getAttribute("type") == "checked" && next.getAttribute("name") != name){
   if(!change){
   as[i].click();
   }
   change = false;
  }
  if(i == as.length - 1 && !change){
   as[i].click();
  }
  preName = name;
  }
 }
 var objs = document.getElementsByTagName("textarea");
 for (var i = 0; i < objs.length; i++){
  objs[i].focus();
  objs[i].value = "最好的意见就是没有意见,哈哈哈哈哈哈哈";
  objs[i].blur();
 }
 var choose = document.getElementsByTagName("select");
 for (var i = 0; i < choose.length; i++) {
  choose[i].focus();
  choose[i].value = "1";
  choose[i].blur();
 }
 })());
function validate(){return true;}
var btn = document.getElementById("submit_button");
window.setTimeout(btn.click(),2000); 

之前问卷星的前端加入了一个隐藏的选择题,如果直接遍历页面上的input标签,会把这道题一起做了,然后validate函数执行的时候会报错,提示非法填问卷!!!!

下面是问卷星的js代码

if (J[0].checked || J[1].checked) {
 alert('系统检测到非法填写问卷');
 window.location.href = window.location.href;
 return;
} 

这里我直接屏蔽了验证函数

单选题直接用XPath查找填写,random生成随机数选择选项

对于多选题,使用的是a标签与input绑定的方式,似乎是优化过的,因为之前网上流传的脚本都填不了多选了,这里我直接取出页面中所有的a标签,如果当前的a标签有rel属性,并且下一个兄弟标签的type是checked,则认定当前标签为一个多选的选项
问卷星页面的命名的一些规则,input的name为q+对应的题目编号,多选题是a标签跟input绑定,使用的是rel属性,rel命名规则是:q+对应的题目编号+选项编号

<li style="width:99%;">
<a href="javascript:" rel="external nofollow" class="jqCheckbox" rel="q2_2"></a>
<input style="display:none;" id="q2_2" name="q2" value="2" type="checkbox">
<label>选项8</label>
</li> 

文本框是固定文字的。

总结

以上所述是小编给大家介绍的JS实现问卷星自动填问卷脚本两秒自动提交功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JSP中的FORM表单中只有一个input文本时,按回车键将会自动提交表单

    一个列表界面只有一个输入框查询条件,当首次进入在输入框中输入汉字后,按回车键发现输入框中汉字变成乱码!本以为一个很简单不过的问题,结果却花了好久才找到原因(据说是浏览器问题),按回车后执行了两次查询. 1.未修改前代码: <form id="ff" name="ff" method="post"> <input type="text" id="userName" name="us

  • js实现点击图片自动提交action的简单方法

    利用js实现点击一张图片,直接上传到指定的action,方法简单,一看就会了,只需要用户点击图片一次就可以实现图片上传功能.主要用到了onclick,  onchange,  display属性,代码可以直接copy用.此代码适合上传单张图片,关于action部分此处没有,这里只简绍页面效果. html代码 <form action="p1.html" id="form" ENCTYPE="multipart/form-data" meth

  • jsp中如何实现按下回车键自动提交表单

    为了省事很多时候希望可以按回车键来提交表单,要控制这些行为,可以借助JS来达到要求. 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../../common/include_tag.jsp"%> <%@ include fi

  • JS实现问卷星自动填问卷脚本并在两秒自动提交功能

    脚本只使用问卷星,多选题目前为选中任意选项数量!!!!!!! 最近看到很多群里都在发问卷连接,各种求帮忙,正好这两天没任务,尝试写了自动填问卷的脚本,类似的脚本网上已经有了,但是后来问卷星加了验证,并且多选题已经不能适用 脚本使用方式(以Firefox为例): 一:鼠标移动到浏览器地址栏下空白处,右键,新建书签 二:填写名称(任意),代码复制到地址栏中 三:打开问卷星连接,然后点击刚刚添加的书签,即可. 代码: javascript: void ( (function () { var hash

  • Android ViewPager实现每隔两秒自动切换图片功能

    布局代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Fr

  • Python+Selenium实现自动填写问卷

    目录 前提条件 相关介绍 实验环境 填写问卷 问卷地址 获取Xpath 主要思路 代码实现 输出结果 前提条件 熟悉Python 熟悉HTML 熟悉Xpath 熟悉Selenium 相关介绍 Python是一种跨平台的计算机程序设计语言.是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. Time是python标准库,无需额外下载,主要用于处理时间问题. Random

  • python爬虫_实现校园网自动重连脚本的教程

    一.背景 最近学校校园网不知道是什么情况,总出现掉线的情况.每次掉线都需要我手动打开web浏览器重新进行账号密码输入,重新进行登录.系统的问题我没办法解决,但是可以写一个简单的python脚本用于自动登录校园网.每次掉线后,再打开任意网页就是这个页面. 二.实现代码 #-*- coding:utf-8 -*- __author__ = 'pf' import time import requests class Login: #初始化 def __init__(self): #检测间隔时间,单位

  • Vue自动构建发布脚本的方法示例

    简介 使用cross-env, scp2两个插件完成 cross-env cross-env这是一款运行跨平台设置和使用环境变量的脚本. 为什么需要cross-env? NODE_ENV=production 像这样设置环境变量时,大多数Windows命令提示符都会阻塞 .(Windows上的Bash是例外,它使用本机Bash.)同样,Windows和POSIX命令使用环境变量的方式也有所不同.对于POSIX,您可以使用: $ENV_VAR 和在Windows上可以使用 %ENV_VAR% .

  • 图片自动播放器脚本之家修正

    图片自动播放器我们修正,可以兼容ff,发现些小问题,希望大家多多讨论,使用方法呢 复制代码 代码如下: ImgName=new ImgArray(3);  ImgName[0]="4.jpg";  ImgName[1]="1.jpg";  ImgName[2]="2.jpg";  ImgName[3]="3.jpg"; 只需修改上面的地方即可,加了图片预载,转载请写明出处,剩下的大家来完善吧 图片自动播放器我们修正 funct

  • JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码

    比如百度收录了你的a,你希望从a站被点击访问后,再跳转或弹出b站,可以用下面的方式. 当然可以直接用window.open() 弹出窗口,可以多个弹窗,也可以用form的方式.不过两种方式,都有被360过滤的可能. self.location 这个方式是转向,不会被当成广告过滤. <script type="text/javascript"> $(function(){ var s=document.referrer; //获取来源地址 if(s.indexOf("

  • linux下mysql如何自动备份shell脚本

    Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

  • linux实现自动部署tomcat脚本

    由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: #! /bin/sh echo '####################开始自动部署####################' path=`pwd` #当前路径 tomcatPath=tomcat-7 #指定tomcat文件目录名称 cd ../$tomcatPath/bin #进入tomcat的bin目录 PI

  • 用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法

    如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <script type="text/javascript"> funct

随机推荐