在模擬系統登錄的時候,我們一般是獲取系統的用戶名和密碼框,直接賦值,然后獲取登錄按鈕的div,手動執行登錄按鈕的click事件,但是對於大部分系統,都可以在控制台中看到登錄按鈕div上有onclick事件或者js中有給登錄按鈕綁定點擊事件,這種情況直接執行登錄按鈕的click事件是可以實現系統的模擬登錄,但是對於獲取不到登錄按鈕div的click事件的系統,就需要模擬input框的手動輸入,代碼如下:
function changeInputData(el, value) { let copySetValue = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set; copySetValue.call(el, value) let e = new Event('input', { bubbles: true }) el.dispatchEvent(e) }
var nameInput = document.getElementById('#name');
var pwdInput = document.getElementById('#password');
var loginBtn = document.getElementById('#loginBtn');
changeInputData(nameInput, ‘userName’):// 用戶名輸入框賦值
changeInputData(pwdInput, ‘pwd’);// 密碼輸入框賦值
loginBtn.click(); // 執行登錄按鈕點擊事件