使用Webbrowser更改HTML元素

时间:2017-11-03 19:33:41

标签: vb.net webbrowser-control

我有一个问题,如何更改HTML输入值?

<select name="sys_lenght" aria-controls="systable" class>
<option value="20">Value 1</option>
<option value="40">Value 2</option>
<option value="80">Value 3</option>
</select>

我使用了这段代码

For Each Elementz In WebBrowser1.Document.GetElementsByTagName("select")
        If Elementz.Name = "sys_lenght" Then
            Elementz.setAttribute("value", "80")
        End If
    Next

但它不会改变输入值,只会改变文本“Value 3”。 我怎么解决这个问题?感谢

2 个答案:

答案 0 :(得分:2)

sys_lenght的值表示选择了具有指定值的选项。因此,如果您将sys_lenght.value设置为"80",则会选择Value 3

要更改 当前选择的选项 value,您必须首先获得对此的引用。您可以通过获取sys_lenght的{​​{3}}来获取,然后从该索引中获取特定项目。

For Each Elementz In WebBrowser1.Document.GetElementsByTagName("select")
    If Elementz.Name = "sys_lenght" Then

        'Get the index of the selected option.
        Dim SelectedIndex As Integer = Integer.Parse(Elementz.GetAttribute("selectedIndex"))
        If SelectedIndex >= 0 Then
            'Get the option element from the resulting index.
            Dim SelectedOption As HtmlElement = Elementz.Children(SelectedIndex)
            SelectedOption.setAttribute("value", "80")
        Else 'No option selected.
            MessageBox.Show("No option selected!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

        Exit For 'We found what we were looking for; stop looping.
    End If
Next

答案 1 :(得分:0)

首先你必须了解html如何打开和关闭标签,你忘了关闭html选择选项打开标签我的意思是最后一个greter sign&gt;然后使用javascript查询在选项示例中找到值

WebControl1.ExecuteJavascript('document.querySelector('option [value='your value']').selected=true;") 
希望得到它的帮助吗?