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

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

我不希望你在其他箱子里挑选具有相同值(value)的元素。是this like gecko 可用的解决方案?

最佳答案

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

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

  1. 选择第一个子元素为“Turu”的 LI 元素
  2. 然后选择该 LI 元素内的“组合框”

另请注意,这段代码并不是真的正确:

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

您将获得页面上所有组合框中所有选项的集合。因此,组合框实际上是 option 元素(select 元素)的父元素。

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

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

最后 - 是的,您的链接中的解决方案在 Gecko 中是可行的。

关于C# Gecko 选择特定的列表框或组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173941/

相关文章:

html - 我想显示不透明度 :1 for input[type ="number"] placeholders

user-agent - “KHTML, like Gecko”在用户代理字符串中是什么意思?

c# - 使用gecko navigate时屏蔽image, flash, style的方法?

c# - 将 Base64 编码的 CSS 图片上传到 Asp.Net MVC/Web Api

c# - 多次实现包含具有不同类型参数的属性的相同通用接口(interface)

c# - 如何访问我的 GridView 的 HeaderTemplate 中的控件

c++ - 构建 XPCOM XULRunner 2.0 或更新版本

C# 结合 GeckoFX + Tor.NET 库

vb.net - 使用 GeckoWebBrowser 单击 HTML 按钮下载文件

c# - 在 C# ASP.NET 中动态调用方法