无法更改元素值Gecko浏览器(v45)

时间:2017-10-14 11:26:40

标签: vb.net gecko geckofx

我试图在gecko浏览器中更改HTML元素值(v45.0.32),但是它说invoke成员不是gecko元素的成员,

 For Each solo As Gecko.GeckoHtmlElement In GeckoWebBrowser1.Document.text
        If GeckoWebBrowser1.Document.GetElementById("order_status_id").GetAttribute("value") = "1" Then
            GeckoWebBrowser1.Document.GetElementById("order_status_id").SetAttribute("value", "2")

            If GeckoWebBrowser1.Document.GetElementById("notify").GetAttribute("value") = "1" Then
                GeckoWebBrowser1.Document.GetElementById("notify").InvokeMember("click")
                GeckoWebBrowser1.Document.GetElementById("button-history").InvokeMember("click")
            End If
        End If
    Next

    GeckoWebBrowser1.GoBack()

2 个答案:

答案 0 :(得分:1)

GeckoHtmlElement上有一个'Click()'方法,所以您可以执行以下操作: (强制转换并调用Click();

((GeckoHtmlElement)GeckoWebBrowser1.Document.GetElementById("notify")).Click();

希望这有帮助。

答案 1 :(得分:1)

  1. GeckoHtmlElement中没有名为InvokeMember的方法,请使用Click
  2. 您指定的代码只能从主线程调用。如有必要,请在GeckoWebBrowser的父级上使用Invoke
  3. 为确保您的某个元素具有属性,请首先检查当前文档中是否存在此元素,如下所示:

    Dim element = GeckoWebBrowser1.Document.GetElementById("")
    If element IsNot Nothing AndAlso element.GetAttribute("value") = "1" Then
        element.SetAttribute("value", "2")
    End If