4

我正在尝试制作一个程序,该程序将从我兄弟学校用来显示您当前成绩的网站中提取信息。

我基本上已经设置好了所有东西,但是我遇到了一件事情。

我为此使用了 WebBrowser,顺便说一下,我知道我应该使用 WebRequests。

有一个组合框(下拉菜单)将填充注册到家长帐户的学生列表。

但是,在单击框之前,不会将学生加载到组合框中。

我试图让 WebBrowser 只需单击组合框,但我无法让它工作。

这是组合框的 HTML:

<a id="droplist" tabindex="1" href="#students" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all ui-state-loading">SELECT A STUDENT<span class="ui-icon ui-icon-triangle-1-s"></span></a>

这是包含未加载名称的 DIV 的 HTML:

<div id="students" class="hidden">
                 <ul></ul>
              </div>

这是 DIV 的 HTML,其中包含加载时组合框中的名称:

<div id="students" class="hidden">
                 <ul><li><a href="#" id="17743">Aaron P. Hailey </a></li><li><a href="#" id="16265">Aidan C. Hailey </a></li><li><a href="#" id="19305">Ethan B. Hailey </a></li></ul>
              </div>

我的猜测是我将不得不发送一个额外的请求来获取信息或其他东西,但有人能想到一个简单的解决方法吗?

我是VB的菜鸟,所以我遇到了很多麻烦。

谢谢,如果您需要任何其他信息,请告诉我!

4

3 回答 3

2

fireEvent 方法- 在对象上触发指定事件。

设置下拉值后,您可以尝试触发附加到下拉列表的事件(onchange)。

doc.getElementById("droplist").selectedindex=1
doc.getElementById("droplist").FireEvent("onchange")

参考这个

于 2013-09-27T04:54:30.417 回答
0

您正在查看的“组合框”附加了一个事件侦听器。单击此按钮会触发并向 Web 服务器发出 ajax 请求。您应该能够通过“网络”选项卡下的 Chrome 开发人员工具隔离返回所需成绩数据的 URI。这会记录页面发出的所有 HTTP 请求。获得 URI 后,您应该能够直接向它发出自己的请求,因此能够自己解析响应。

于 2013-10-01T16:26:15.070 回答
-1

将字段加载到页面后,您可以使用 jquery 的标准 val 函数访问它们的值。

$('#field1').val();

于 2013-09-30T20:21:16.717 回答