我正在自动化网站上的一些东西。我需要检查页面上是否有“下一步”按钮,然后单击它。这是HTML。
<a href="javascript:goToPage(2);"><span class="txt_purple"></span><img align="absmiddle" src="/icon_next.jpg" border="0" /></a>
我可以使用getElementsByTagName('img')查找图片,然后我该如何点击?
更新答案:
在这种情况下,无法添加ID。我无法控制网页。这是别人的网站,所以我必须处理已有的网站。这就是我所做的:
var e = document.getElementsByTagName('img');
for (var i = 0; i < e.length; i++) {
if (e[i].hasAttribute('src') && e[i].getAttribute('src') == '/icon_next.jpg') {
e[i].click();
break;
}
答案 0 :(得分:2)
修改强>
为您的图片添加ID id=next
<a href="javascript:goToPage(2);">
<span class="txt_purple"></span>
<img id="next" align="absmiddle" src="/icon_next.jpg" border="0" />
</a>
然后使用
document.getElementById("next").click()
答案 1 :(得分:0)
由于您可以找到图像,因此您可以使用以下方法自动执行单击:
document.getElementById('iwanttoclickthis').click();
答案 2 :(得分:0)
“我需要检查页面上是否有”下一步“按钮”
如果你想知道一个元素是否存在:
if(document.getElementById("someID")){
“然后点击它”
修改1
请参阅 this fiddle - 点击事件会在页面加载时引发。您也可以直接点击<a>
这可能比你想象的要多一些,因为你试图调用<a>
的点击。这些不保证具有单击事件处理程序。请参阅 this answer 。你需要这样的东西:
var elem = document.getElementById('myNext');
if( elem )
{
var event = document.createEvent("MouseEvents");
event.initEvent("click", true, false);
elem.dispatchEvent(event);
}
然而,这有点像黑客。您可能只想直接在a
上定义onclick并调用函数。
修改2
您可能真正想要的是在href本身上定义onclick。见 updated fiddle 。该函数在页面加载时触发,如果在每种情况下单击传递元素的a
。
HTML:
<a id="myNext" href="#" onclick="clickAction(this)">
<span class="txt_purple"></span>
<img align="absmiddle" src="<yoursource>" border="0"/>
</a>
然后适当地调用该函数:
function clickAction(element)
{
alert(element);
}
var elem = document.getElementById('myNext');
if( elem )
{
clickAction(elem);
}