2017-10-14 4 views
0

Im essayant de changer la valeur de l'élément HTML dans un navigateur gecko (v45.0.32), mais il dit invoquer membre n'est pas membre de l'élément de gecko,valeur Cant élément de changement navigateur Gecko (v45)

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

Répondre

1

Il y a un «clic() méthode disponible sur GeckoHtmlElement, de sorte que vous pouvez faire quelque chose comme ci-dessous: (fonte et invoquer Click();)

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

Hope this helps.

1
  1. Il n'y a pas de méthode appelée InvokeMember dans GeckoHtmlElement, utilisez Click.
  2. Le code que vous avez spécifié doit être appelé uniquement à partir du thread principal. Utilisez Invoke sur le parent de GeckoWebBrowser, si nécessaire.
  3. Pour vous assurer que l'un de vos éléments a un attribut, vérifiez d'abord si cet élément existe dans le document en cours, comme celui-ci:

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