在瀏覽器控制台模擬點擊帶 ng-click 的 AngularJS 按鈕時,直接調用 document.getElementsByClassName('btn test').click() 無效,原因是該方法返回 HTMLCollection(類數組),需先取元素再調用 click()。
// 取第一個匹配元素
document.getElementsByClassName('btn test')[0].click();
// 或使用 querySelector(推薦,返回單個元素)
document.querySelector('.btn.test').click();
若按鈕綁定 ng-click,原生 click() 可能不觸發 Angular 的 digest 循環,需手動觸發:
var btn = document.querySelector('.btn.test');
var evt = new Event('click', { bubbles: true });
btn.dispatchEvent(evt);
// 或 Angular 方式
angular.element(btn).triggerHandler('click');
getElementsByClassName 返回即時集合,DOM 變動會影響索引。querySelector('.btn.test') 更穩健。掌握 DOM 集合與單元素區別,控制台調試事半功倍。