使用 Webbrowser 更改 HTML 个元素

Changing HTML elements with Webbrowser

我有一个问题,如何更改 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"。 我怎么解决这个问题?谢谢

首先你要明白html如何打开和关闭标签,你忘了关闭html选择选项打开标签我是说最后一个greter sign>然后使用javascript查询在选项 example

中查找值
WebControl1.ExecuteJavascript('document.querySelector('option [value='your value']').selected=true;") 

希望对您有所帮助?

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

要更改 当前 selected 选项的 value ,您必须参考那首先。您可以通过获取 sys_lenghtselectedIndex 来实现,然后从该索引中获取特定项目。

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