C#Gecko选择一个特定的ListBox或ComboBox

时间:2017-02-11 08:41:28

标签: c# gecko geckofx

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

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");
        }
    }

我不希望您在其他框中选择具有相同值的项目。 this like解决方案是否适用于gecko?

1 个答案:

答案 0 :(得分:1)

我注意到有一个标签标签('Turu'或者什么:))。

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

  1. 选择第一个孩子的LI元素,其内容为'Turu'
  2. 然后在LI元素中选择'combobox'
  3. 另请注意,此代码并不正确:

    *{
      padding:0;
      margin:0;
      overflow-x:hidden;
    }
    
    #nav{float:right; line-height:70px;}
    
    header{
      width:100%;
      position:fixed;
      padding-left:10%;
      padding-right:10%;
      background:#fff;
      height:70px;
    }
    
    #main{
      padding-top:100px;
      text-align:center;
      height:800px;
      background:#3cb5f9;}
    #main img{width:200px; margin:0 auto;}
    

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

    此外,选项标签是GeckoOptionElements(可以安全地铸造), 所以你可以这样做:

    select

    最后 - 是的,可以在Gecko中找到链接中的解决方案。