在Web浏览器中将文本插入文本框

时间:2014-09-30 09:23:51

标签: html vb.net

我正试图在网络浏览器中将文本插入文本框但是有问题要做到这一点..

我正在尝试这段代码。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebBrowser1.Navigate("192.168.10.1")
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
WebBrowser1.Document.GetElementById("nmgp_arg_fast_search").Focus()
WebBrowser1.Document.GetElementById("nmgp_arg_fast_search").InnerText = TextBox2.Text()
End Sub

遵循错误:

  

对象引用未设置为对象的实例。

我确定文本框的名称是“nmgp_arg_fast_search”,因为我正在www.google.com上尝试该代码并且文本名称是“q”并且它的工作。

这就是我从firebug得到的(编辑:如果我使用firebug从mozilla firefox检查我可以看到所有代码)

<td class="scGridToolbarPadding" width="33%" valign="middle" nowrap="" align="left">
<script type="text/javascript">
var change_fast_top = "";
</script>
<input type="hidden" value="SC_all_Cmp" name="nmgp_fast_search">
<input type="hidden" value="qp" name="nmgp_cond_fast_search">
<script type="text/javascript">
var scQSInitVal = "";
</script>
<span id="quicksearchph_top">
<input id="SC_fast_search_top" class="css_toolbar_obj" type="text" alt="{watermark:'Pencarian cepat', watermarkClass:'css_toolbar_objWm', maxLength: 255}" onchange="change_fast_top = 'CH';" size="30" value="" name="nmgp_arg_fast_search" style="vertical-align: middle; height: 16px; padding-right: 17px; display: none;" maxlength="255">
<input id="SC_fast_search_top" class="css_toolbar_obj css_toolbar_objWm" type="text" alt="{watermark:'Pencarian cepat', watermarkClass:'css_toolbar_objWm', maxLength: 255}" onchange="change_fast_top = 'CH';" size="30" value="" name="sc_clone_nmgp_arg_fast_search" style="vertical-align: middle; height: 16px; padding-right: 17px;" maxlength="255">
<img id="SC_fast_search_close_top" onclick="document.getElementById('SC_fast_search_top').value = '';document.F0_top.nmgp_opcao.value='fast_search';document.F0_top.submit();" src="/cts2_pn/_lib/img/scriptcase__NM__qs_close.png" style="display: none; right: 5px; cursor: pointer;">
<img id="SC_fast_search_submit_top" onclick="scQuickSearchSubmit_top();" src="/cts2_pn/_lib/img/scriptcase__NM__qs_lupa.png" style="right: 5px; cursor: pointer;">
</span>

但是当我从webbrowser1看到很多隐藏的代码而且我找不到元素时......那就是为什么我总会得到错误..

我发现了问题,但仍未解决我的问题..

2 个答案:

答案 0 :(得分:1)

这是你想要做的:

Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete
    Application.DoEvents()
Loop

WebBrowser1.Document.GetElementById("SC_fast_search_top").SetAttribute("value", TextBox2.Text())

这会将TextBox2中的文本放入当前加载文档中id为“SC_fast_search_top”的输入框中。在WebBrowser中,您需要首先加载所需的页面,并确保在页面完成加载之前不要这样做

如果您有任何疑问,请与我们联系。

答案 1 :(得分:0)

我认为您需要按名称而不是Id来查找元素。来自萤火虫的文字我看到name="nmgp_arg_fast_search"而不是id="nmgp_arg_fast_search"