点击<span>?没有名字的元素或按钮或提交工作

时间:2017-06-10 16:34:01

标签: excel vba internet-explorer

我一直在互联网上喋喋不休地拼凑一些VBA代码,试图与一些网页互动(并最终刮掉)。

我对VB和编程有一些不错的了解,但是对于我来说,互联网的结尾对我来说是一个新手,特别是命令的语法,所以我利用互联网上的东西。

我有一个工作,

http://snowload.atcouncil.org/

我可以用

填写并提交
doc.getelementsbyId("coordinate_address").value = range("City").value _ 
& ", " & range("State").value 
doc.getelementsbyId("btn-submit").click

然后等待,直到readystate = 4,等等。

我无法上班的人就在这里。

http://windspeed.atcouncil.org/

这个似乎使用了一个我无法弄清楚如何点击的对象。它似乎没有名字,Id等等。

如果我使用传统的&#39;提交&#39;在windspeed页面上,(松散地使用该术语),页面加载,但它是空白的。就像我没有正确使用语法,或者不以某种方式传递变量/ searchform。

ie.document.all.item("submit").click

这个&#39;工作&#39;但是它产生了一张非洲东海岸的空白页面,没有数据。

在浏览器的立即/控制台中,单击“夏威夷”按钮后,它与document.searchform.submit()

一起使用

如果我在代码中尝试它,它就不起作用。 (VBA编辑器中的立即窗口让我看到了#34;预期:=&#34;错误,

我想点击的对象是网站代码.....

<span>
 <input type="submit" value="Get Windspeed" onclick="valbutton(searchform); return false;">
<span>

我尝试过很多从互联网挖走的技术,但还没有成功。 (使用getelementsbyclassname&#34; span&#34;循环遍历元素,但它要么找不到值为&#34的那个;得到Windspeed&#34;,要么根本找不到它

以某种方式触发valbutton(页面上的子例程/函数)似乎是一种解决方法...但是VBA似乎需要与网页上的控制台不同的语法并且它也在做同样的事情有点&#34;期待:=&#34;我尝试这种方法时出现语法错误。

我怀疑正常的提交会有效,但是我不知道是不是通过了填写的页面并且发送了一个空白到提交/获取?

我还注意到,如果你在页面上,输入一个地址,然后点击回车,它会运行那个&#34;找到&#34;按钮我无法弄清楚(同样的事情,没有明显的名字或ID,它是一个按钮......),如果你在重新加载后点击输入,那么默认情况下会以某种方式命中&#39 ;得到风速&#39;按钮,它向我建议他们都是以某种方式提交按钮。

感谢阅读,感谢您对此事的任何想法。我试图得到这个来获取所有数据输入并获得结果而不添加任何超出VBA的内容(即jscript或vbscript或其他东西)

-Brian

2 个答案:

答案 0 :(得分:0)

您应该能够在设置输入的.Value后简单地提交表单。

doc.getelementsbyId("searchform").submit

答案 1 :(得分:0)

我能够适应这一点(尽管声称这在IE11中不起作用......也许我没有使用11 ...是十一个Miscrosoft Edge吗?)

https://www.mrexcel.com/forum/excel-questions/344297-need-visual-basic-applications-code-execute-javascript.html

IE.Document.parentWindow.execScript "CheckAndSubmit(document.frmViewMyAcct);"

允许我模仿按钮或点击提交,并以某种方式绕过“没有信息/结果页面”空白&#39;问题。 onclick事件附加了一个javascript例程,所以我只是复制了那个语法。

感谢您的帮助,它让我开始了解决方案。

此致 布赖恩