如何在Visual Basic应用程序中单击Gecko中加载的网站[VS2015]

时间:2016-06-04 04:39:09

标签: xpath visual-studio-2015 gecko

在用Visual Basic(VS2015)编写的HAM RADIO应用程序中,我使用VB形式的Gecko Web浏览器。

在我使用VB程序(URL = http://websdr.ewi.utwente.nl:8901/)加载到Gecko浏览器的网站上,我想在旋钮“CW-narrow”上从我的VB应用程序中单击[通过软件代码]。此旋钮缩小此基于Web的SDR(软件定义无线电)中的接收过滤器

此旋钮是网站上表格的一部分。在CW-Narrow旋钮上用鼠标右键单击后,我在FireBug中看到了这一点(下面是HTML代码)。

'CW-Narrow'旋钮在表格中,我无法点击VB应用程序中的旋钮。

谁可以提供帮助?

注意: 我在同一站点上需要的另一个控件,即静音复选框,正在使用以下VB代码:

  • GWB_SDR1_MyCall 是VB表单上的Gecko浏览器。

Dim MuteCheck As Gecko.DOM.GeckoInputElement = DirectCast(GWB_SDR1_MyCall.Document.GetElementById(“mutecheckbox”),Gecko.DOM.GeckoInputElement) MuteCheck.Click()

运行此代码确实会使SDR上的音频静音。

希望有人可以通过点击表格中的CW-Narrow旋钮来帮助我。 (见下面的网站复制粘贴)

<table>
<tbody>
<tr>
<tr>
<td>
<td>
<input type="button" onclick="setmf('cw',-0.78, -0.72);" value="CW-narrow">
</td>
<td>
<td>
<td>
<td>
</tr>
</tbody>
</table>

非常感谢提前!

Onno de Meijer

1 个答案:

答案 0 :(得分:0)

尝试

GWB_SDR1_MyCall.Document.QuerySelector("div.ctl:nth-child(32) > table:nth-child(6) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > input:nth-child(1)").Click()

我不熟悉您尝试使用的Gecko API,因此很难确定您需要声明或转换为哪种类型。作为一种捷径,您可能希望尝试使用后期绑定,例如

Dim CWN As Object = GWB_SDR1_MyCall.Document.QuerySelector("div.ctl:nth-child(32) > table:nth-child(6) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > input:nth-child(1)")

CWN.Click()

您可能需要使用Option Strict Off进行编译。

如果您仍然遇到问题,请尝试使用Dim CWN = GWB_SDR1_MyCall.Document.QuerySelector("div.ctl:nth-child(32) > table:nth-child(6) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > input:nth-child(1)"),然后在该指令后断开调试器并检查运行时类型。