2014-11-21 95 views
0

我可以打开浏览器和我想要使用的页面。但实际的兴趣点是名为“下一个”的链接。我想单击该链接,但我试图在我的代码中获取该元素失败。这是我迄今为止所做的。如何使用vbscript单击嵌入在html的锚标记中的超链接?

Dim URL 
Dim IE 
Set IE = CreateObject("internetexplorer.application") 
URL = "http://mylink.com/" 
IE.Visible = True 
IE.Navigate URL 

Dim a 
Set a = IE.Document.GetElementsByTagName("arrowRight") 

For i = 0 To a.Length - 1 
    MsgBox "Found it" 
    a.Click 
    Exit For 
Next 

这是“下一个”超级链接是如何在页面中嵌入代码:

<a class="arrowRight" href="http://SomeURL.com/150.html">Next</a> 
+0

SO不是其他人为您编写代码的地方。到目前为止您尝试了什么,以及您需要帮助的具体问题? – 2014-11-21 17:30:34

+0

你好Ansgar!哈!我的道歉,但我绝对没有期待完整的代码版本,并再次抱歉,如果这是我以前的帖子传达。无论如何,这是我在搜索后发布我的原始问题。虽然我要发布的内容与我在上面的帖子中提到的内容不同,但是一旦我解决了这个问题,我就可以继续发展。无论如何,我在页面上没有ID的特定元素遇到问题。恐怕我对这个评论的字符数量限制不够,所以让我告诉你下面的评论中的代码 – Jrules80 2014-11-21 17:54:35

回答

0

arrowRight是(CSS)类名,而不是一个标签名,所以你需要检查a带有类别的标签arrowRight

For Each a In ie.document.getElementsByTagName("a") 
    If a.getAttribute("class") = "arrowRight" And a.innerText = "Next" Then 
    a.Click 
    Exit For 
    End If 
Next 
+0

不能upvote(显然我必须有15个代表)。所以,很好的解决方案效果很好。但由于某种原因,a.innerText失败。所以,我不得不删除它。另外,我想我将不得不在循环之前添加一些休眠时间,因为如果页面在光标位于循环中时不加载,它将失败。还是谢谢! – Jrules80 2014-11-21 18:55:44

+0

不客气。如果您发现它解决了您的问题,请考虑[接受答案](http://meta.stackoverflow.com/a/5235)。至于等待IE完成加载页面,在IE.Navigate后添加一行'While IE.ReadyState <> 4:WScript.Sleep 100:Wend'。 – 2014-11-21 21:13:39

相关问题