js搶購指令碼——利用document子節點穩定獲取無id、name屬性的a元素
阿新 • • 發佈:2021-02-08
技術標籤:js
js中常見的獲取元素的方法:
1、document.getElementById(“id屬性的值”);
2、document.getElementsByTagName(“標籤的名字”);
3、document.getElementsByName(“name屬性的值”);
4、document.getElementsByClassName(“類樣式的名字”);
筆者在寫秒殺搶購js指令碼過程中遇到一個問題,如今許多網站會將“立即搶購"按鈕的id屬性、name屬性等隱藏起來,如下圖例子(某購物網站的原始碼中關於搶購按鈕部分):
筆者想過利用a元素的class屬性來獲取a元素,準備利用如下程式碼來模擬人點選搶購按鈕:
document.getElementsByClassName("product-button02 disabled")[0].click();
但是經過查閱資料,當搶購時間重新整理,a元素的class屬性可能會變化
所以為了在搶購按鈕重新整理後模擬人工點選搶購按鈕,首先獲取按鈕所在div元素,通過document.firstChild 可以訪問第一個子節點
var D=document.getElementById("pro-operation");
var A=D.firstChild;
A.click();
這樣,即使搶購時間到了,按鈕屬性,也可以通過document穩定捕捉按鈕,並通過js模擬人點選搶購按鈕。
寫得不對的地方也請各位小夥伴提出指正意見。