【问题标题】:Cant change element value Gecko browser (v45)无法更改元素值 Gecko 浏览器 (v45)
【发布时间】:2017-10-14 11:26:40
【问题描述】:

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

 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()

【问题讨论】:

    标签: vb.net gecko geckofx


    【解决方案1】:

    GeckoHtmlElement 上有一个“Click()”方法,因此您可以执行以下操作: (投射和调用Click();

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      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
        

      【讨论】:

        猜你喜欢
        • 2015-12-08
        • 2013-06-07
        • 1970-01-01
        • 2016-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多