https://login.taobao.com/memb...
Nachdem Sie sich mehrmals mit einem falschen Passwort bei Ihrem Taobao-Konto angemeldet haben, müssen Sie den Schieberegler gedrückt halten und nach rechts ziehen (wie im Bild gezeigt). Wie implementiert man mit js ?Halten Sie den Schieberegler gedrückt und ziehen Sie ihn nach links und rechts“?
這個(gè)滑動(dòng)塊是用來檢測機(jī)器人的,如果你用腳本直接滑動(dòng)過去,它會(huì)判斷你為機(jī)器人。
其實(shí)它的本質(zhì)并不是要你滑動(dòng)過去,而是檢測你在拖動(dòng)前,拖動(dòng)中,拖動(dòng)后的鼠標(biāo)行為是否符合真人特征
原生js里有個(gè) createEvent()方法,可以主動(dòng)觸發(fā)事件。例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p id="aaa" onclick="alert(1)"></p>
<script type="text/javascript">
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false, 0 ,null);
aaa.dispatchEvent(event);
</script>
</body>
</html>
你可以根據(jù)自己將click換成mousemove。
看圖,該滾動(dòng)條初始化是一個(gè)span也就是你圈的部分,還有一個(gè)p用于顯示拖動(dòng)進(jìn)度。
如果你是問的只是針對達(dá)到它的驗(yàn)證
在拖動(dòng)該span的時(shí)候該span的left和p.nc_1__bg的width發(fā)生改變,這時(shí)嘗試主動(dòng)修改這兩個(gè)style,值都設(shè)為258px,然后點(diǎn)擊(或者說mousedown、mouseup)該span,發(fā)現(xiàn)能夠完成驗(yàn)證。
思路:修改style,然后觸發(fā)span的click、mousedown、mouseup事件,因?yàn)椴淮_定它具體是綁定在up還是down事件中(根據(jù)初步操作,應(yīng)該是綁定在鼠標(biāo)按下事件中),所以都觸發(fā)一遍,至于click只是為了防漏.
代碼:
修改樣式:就是修改p的width和span的left為258px,這里略過。
js:$('#nc_1_wrapper #nc_1_n1z').click(); //觸發(fā)單擊事件
$('#nc_1_wrapper #nc_1_n1z').mousedown(); //觸發(fā)鼠標(biāo)按下事件
$('#nc_1_wrapper #nc_1_n1z').mouseup(); //觸發(fā)鼠標(biāo)彈起事件