2015-06-09 25 views
0

我正在尝试使用Excel的VBA来自动查找并单击某个链接。问题在于这个链接每天都会改变(或者与每个人一起)。但是,HREF属性的开头始终是相同的,并且它是该页面上具有这种HREF的唯一链接。正在搜索HREF链接正在拉回不正确的链接

我试图不让这个过于复杂,但我想解释一下,所以你理解我的代码,为什么我做了我做的:这个链接打开了一个新的页面,但由于它似乎很难管理多个使用VBA的浏览器实例我决定将代码放在同一个浏览器中,然后使用objIE.back进行循环(如果需要的话)会更好。

我搜索一次的联系是文件中的第59链接,所以我尝试类似的代码:

If link59 <> "*ao/party/popuppartyinfo?party*" Then 
hrefvalue = line59 
'Gets rid of the JavascriptPopup unnecessary text 
trimedhrefvalue = Right(link59, 49) 
hrefurlvalue = "https://myjobswebsitehere.com" & trimedhrefvalue 
objIE.navigate hrefurlvalue 

自身工作的代码,但显然这个环节并不总是在页面根据第59届链接在帐户上。

所以现在我有以下几点:

Application.StatusBar = "Trying to find link..." 
Application.Wait (Now() + TimeValue("00:00:05")) 
'objIE.document.parentWindow.execScript "execute('RefreshList');" 
Set ieLinks = objIE.document.getElementsByTagName("a") 
Do Until Progress = True 
For Each Links In ieLinks 
If Links.innerText = "/ao/party/popuppartyinfo?partyId" Then 
'Links.Click 
Application.StatusBar = "Found link! Please wait" 
Links.Value = hrefvalue 
trimedhrefvalue = Right(Links, 49) 
hrefurlvalue = "https://myjobswebsitehere.com" & trimedhrefvalue 
Progress = True 
Exit For 
End If 
Next Links 
Loop 

运行此代码时,它总是会打开无关什么我搜索的页面。实际上,“/ ao/party/popuppartyinfo?partyId”中的任何一个字都不会显示在链接中,而是显示错误。

我试图获得该代码的HTML如下:

<a href="javascript:fnOpenWindow('/ao/party/popuppartyinfo?partyId=11111&nav=off')"> 

整个HREF停留,除了这改变了“partyID”部分的每一个客户端相同。

我的问题是我在做什么错在这里得到这个搜索拉回结果与我指定的innerText没有任何关系?

+0

如果有可能的话,后期实际的URL,而不是'myjobswebsitehere.com'。这将使人们更容易扫描页面并帮助您提供答案。 – FreeMan

+0

@FreeMan不幸的是,我操纵的网站不仅受到用户名和密码的保护,而且还受到私人VPN的保护,所以除非他们坐在我的电脑旁,否则其他人无法看到该网站。我可以在这里发布任何相关的HTML代码,如果需要的话我会更改敏感的客户端信息。任何看起来显然与我的代码找到一个特定的HREF错误? – JGoldz75

+0

不幸的是,我不是你需要看这段代码的专家,我只是发布了评论,希望你能尽快得到答复。 – FreeMan

回答

1

想出来: 链接的内文是每页都有变化的东西,因此无论出于什么原因,都会在代码中出现奇怪的“打开错误链接”打嗝。 这里是工作代码:

Application.StatusBar = "Trying to find link..." 
Application.Wait (Now() + TimeValue("00:00:05")) 
'objIE.document.parentWindow.execScript "execute('RefreshList');" 
Set ieLinks = objIE.document.getElementsByTagName("a") 
Do Until Progress = True 
For Each Links In ieLinks 
If Links.outerHTML Like "<A href=""javascript:fnOpenWindow('/ao/party/popuppartyinfo?partyId=*" Then 
'Links.Click 
Application.StatusBar = "Found link! Please wait" 
Links.Value = hrefvalue 
trimedhrefvalue = Right(Links, 49) 
hrefurlvalue = "https://myjobswebsitehere.com" & trimedhrefvalue 
objIE.navigate hrefurlvalue 
Progress = True 
Exit For 
End If 
Next Links