2017-02-11 1 views
2

Ich benutze Gecko-Browser und ich brauche eine bestimmte Listbox oder Combobox, aber die gleiche Seite haben in mehr als einer Listbox und Combobox. Ich versuche die folgende Methode, aber es gilt für alle. Und es gibt kein ID-Tag, nur ein Namensschild.C# Gecko Wählen Sie eine bestimmte ListBox oder ComboBox

enter image description here

GeckoElementCollection ListeBoxKomboBox = Tarayıcı.Document.GetElementsByTagName("option"); 
    foreach (GeckoHtmlElement Element in ListeBoxKomboBox) 
    { 
     if (Element.GetAttribute("value") == "1") 
     { 
      Element.SetAttribute("selected", "selected"); 
     } 
     if (Element.GetAttribute("value") == "2") 
     { 
      Element.SetAttribute("selected", "selected"); 
     } 
    } 

ich Ihnen die Einzelteile mit dem gleichen Wert in anderen Boxen holen nicht wollen. Ist die this like Lösung für Gecko verfügbar?

Antwort

1

Ich bemerke, dass es ein Label-Tag ('Turu' oder etwas :)).

So können Sie die Select-Box ist die richtige eine durch bestimmen:

  1. Wählen Sie das LI-Element, das ein erstes Kind bekommen hat, der Inhalt ‚Turu‘
  2. dann die Auswahl der ‚Combobox‘ innen dass LI Element

Beachten Sie auch, dass dieser Code nicht wirklich richtig ist:

GeckoElementCollection ListeBoxKomboBox = Tarayıcı.Document.GetElementsByTagName("option"); 

Sie erhalten eine Auflistung aller Optionen in allen Kombinationsfeldern auf der Seite. Also, das Kombinationsfeld ist eigentlich ein Elternteil der option Elemente (das select Element).

Auch Option Tags sind GeckoOptionElements (Gießen sicher sein können), so können Sie tun:

var optionElements= selectBox.GetElementsByTagName("option"); 
      foreach (GeckoOptionElement optionElement in optionElements) 
      { 
       if (optionElement.Value == "Foo") 
       { 
        optionElement.Selected = true; 
       } 
      } 

Schließlich - ja, wie die Lösung in Ihrem Link in Gecko möglich ist.

Verwandte Themen