我有一个页面,里面有几个链接,都是这样的:
<a href="/" class="answer-item" rel="0">10</a>
我想使用该click()
功能来模拟用户对其中之一的点击,但它似乎在我的测试中不起作用。
//Evaluate a mathematical expression from another part of the page
var numberAnswer = eval(document.getElementById("question-title").getElementsByTagName("b")[0].innerHTML);
//Builds an array with the links that may match the expression
var choices = document.getElementsByClassName('answer-item');
//Iterates through array to find a match then clicks it
for(var i in choices){
if(choices[i].innerHTML == numberAnswer){
choices[i].click();
break;
}
}
我确定这choices[i]
是正确的元素。
Firefox 什么都不做,Opera 什么都不做,并且 click() 在 Chrome 中不可用(我认为)。
另外,我尝试以dispatchEvent()
这种形式使用:
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
choices[i].dispatchEvent(evt);
这显然true
在 Firefox 和 Chrome 中返回,但没有改变任何东西。
最麻烦的部分是只有href
属性的链接可以正常工作.click()
。