C#Gecko选择特定的列表框或组合框

C#Gecko选择特定的列表框或组合框,c#,gecko,geckofx,C#,Gecko,Geckofx,我使用gecko浏览器,我需要选择一个特定的列表框或组合框,但同一页面中有多个列表框和组合框。我尝试以下方法,但它适用于所有人。没有id标签,只有一个名字标签 我不希望您在其他框中选择具有相同值的项目。壁虎有解决方案吗?我注意到有一个标签标签(“Turu”或其他东西:)) 因此,您可以通过以下方式确定哪个选择框是正确的: 选择包含第一个子元素的li元素,其内容为“Turu” 然后在li元素中选择“combobox” 还请注意,此代码实际上并不正确: GeckoElementCollection

我使用gecko浏览器,我需要选择一个特定的列表框或组合框,但同一页面中有多个列表框和组合框。我尝试以下方法,但它适用于所有人。没有id标签,只有一个名字标签


我不希望您在其他框中选择具有相同值的项目。壁虎有解决方案吗?

我注意到有一个标签标签(“Turu”或其他东西:))

因此,您可以通过以下方式确定哪个选择框是正确的:

  • 选择包含第一个子元素的li元素,其内容为“Turu”
  • 然后在li元素中选择“combobox”
  • 还请注意,此代码实际上并不正确:

    GeckoElementCollection ListeBoxKomboBox = Tarayıcı.Document.GetElementsByTagName("option");
    
    您将获得页面上所有组合框中所有选项的集合。因此,组合框实际上是
    选项
    元素(
    选择
    元素)的父元素

    此外,选项标签是GeckoOptionElements(可以安全地浇铸), 因此,您可以:

    var optionElements= selectBox.GetElementsByTagName("option");
                foreach (GeckoOptionElement optionElement in optionElements)
                {
                    if (optionElement.Value == "Foo")
                    {
                        optionElement.Selected = true;
                    }
                }
    
    最后-是的,你的链接中的解决方案在Gecko中是可能的

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