简单的模拟网页按钮问题?

<div class="mp-choice-order vm"><span>A</span></div>
<div class="com-mark-pq-single-content js-com-mark-pq-single-content active">积极情绪</div>

<div class="mp-choice-order vm"><span>A</span></div>
<div class="com-mark-pq-single-content js-com-mark-pq-single-content active">感谢/满意</div>

模拟点击这2个按钮,然后按CapsLock

模拟点击这2个按钮,然后点击

<div class="mark-button-left">
        <div id="js_submit_btn" class="button-mark button-red">提交</div>
    </div>

帮忙给出这2中模拟按键

第二种 模拟点击这2个按钮,然后模拟点击提交

 

function dispatch(obj) {
	var e = document.createEvent('MouseEvents');
	e.initEvent('click', true, true);
	obj.dispatchEvent(e);
}

function getEl(sel,text) {
	var arr = document.querySelectorAll(sel);
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].innerText==text)
			return arr[i];
	}
}


dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));

dispatch(document.getElementById("js_submit_btn"));

 

function dispatch(obj) {
	var e = document.createEvent('MouseEvents');
	e.initEvent('click', true, true);
	obj.dispatchEvent(e);
}

function getEl(sel,text) {
	var arr = document.querySelectorAll(sel);
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].innerText==text)
			return arr[i];
	}
}

dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
setTimeout(function(){
	dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));
}, 2000);
setTimeout(function(){
	dispatch(document.getElementById("js_submit_btn"));
}, 4000);

 

dispatch(document.getElementById("js_submit_btn"));

 能把这个换成模拟按键CapsLock或者按键X,因为我问的2种,麻烦了

还有这个2秒、4秒能取消掉吗,就按着顺序操作可以吗

不太懂电脑麻烦了


能说下为什么要模拟按键CapsLock或者按键X吗?
因为js并不能真正的模拟键盘的按键,只能模拟触发按键的事件。

不用延时也可以,只是可能模拟点击的太快,网页反应不过来。
 

因为提交这个按钮有时候是灰色的,没法提交,用CapsLock或者按键X在灰色的时候也可以提交

这个提交有时候一直卡主是怎么回事

function fireKeyEvent(el, evtType, keyCode) {
  var evtObj;
  if (document.createEvent) {
      if (window.KeyEvent) {//firefox 浏览器下模拟事件
          evtObj = document.createEvent('KeyEvents');
          evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
      } else {//chrome 浏览器下模拟事件
          evtObj = document.createEvent('UIEvents');
          evtObj.initUIEvent(evtType, true, true, window, 1);
          delete evtObj.keyCode;
          if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
              Object.defineProperty(evtObj, "keyCode", { value: keyCode });  
          } else {
              evtObj.key = String.fromCharCode(keyCode);
          }
 
          if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
              Object.defineProperty(evtObj, "ctrlKey", { value: false });
          } else {
              evtObj.ctrlKey = false;
          }
      }
      el.dispatchEvent(evtObj);
 
  } else if (document.createEventObject) {//IE 浏览器下模拟事件
      evtObj = document.createEventObject();
      evtObj.keyCode = keyCode
      el.fireEvent('on' + evtType, evtObj);
  }
}

function dispatch(obj) {
	var e = document.createEvent('MouseEvents');
	e.initEvent('click', true, true);
	obj.dispatchEvent(e);
}

function getEl(sel,text) {
	var arr = document.querySelectorAll(sel);
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].innerText==text)
			return arr[i];
	}
}


dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));

dispatch(document.getElementById("js_submit_btn"));

fireKeyEvent(document.getElementById("js_submit_btn"),'keydown',88); //88 是X键的编码
fireKeyEvent(document.getElementById("js_submit_btn"),'keypress',88);
fireKeyEvent(document.getElementById("js_submit_btn"),'keyup',88);

 

能帮忙把这2中分开下吗?代码小白,好了给您采纳

太长了看不懂怎么分开了

第一种 模拟点击这2个按钮,然后按X键
 

function fireKeyEvent(el, evtType, keyCode) {
  var evtObj;
  if (document.createEvent) {
      if (window.KeyEvent) {//firefox 浏览器下模拟事件
          evtObj = document.createEvent('KeyEvents');
          evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
      } else {//chrome 浏览器下模拟事件
          evtObj = document.createEvent('UIEvents');
          evtObj.initUIEvent(evtType, true, true, window, 1);
          delete evtObj.keyCode;
          if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
              Object.defineProperty(evtObj, "keyCode", { value: keyCode });  
          } else {
              evtObj.key = String.fromCharCode(keyCode);
          }
 
          if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
              Object.defineProperty(evtObj, "ctrlKey", { value: false });
          } else {
              evtObj.ctrlKey = false;
          }
      }
      el.dispatchEvent(evtObj);
 
  } else if (document.createEventObject) {//IE 浏览器下模拟事件
      evtObj = document.createEventObject();
      evtObj.keyCode = keyCode
      el.fireEvent('on' + evtType, evtObj);
  }
}

function dispatch(obj) {
	var e = document.createEvent('MouseEvents');
	e.initEvent('click', true, true);
	obj.dispatchEvent(e);
}

function getEl(sel,text) {
	var arr = document.querySelectorAll(sel);
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].innerText==text)
			return arr[i];
	}
}


dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));

fireKeyEvent(document.getElementById("js_submit_btn"),'keydown',88); //88 是X键的编码
fireKeyEvent(document.getElementById("js_submit_btn"),'keypress',88);
fireKeyEvent(document.getElementById("js_submit_btn"),'keyup',88);


 

要模拟CapsLock键可以把上面的88改成20