【问题标题】:C# webbrowser how to access HtmlElement CSS class?C# webbrowser 如何访问 HtmlElement CSS 类?
【发布时间】:2012-01-22 07:48:50
【问题描述】:

我正在尝试填写网络表单。我们如何访问 html 中的一类 HTML 元素?通常我们使用这个代码:

webBrowser2.Document.GetElementById

html如下:

<select class="birthday_day" name="birthday_day" >
    <option value="0">---</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
      </select>

【问题讨论】:

  • -1:对于“不同的东西”很难解释为什么它不起作用。考虑显示您尝试过的最少(通常一行)代码。尽量不要在没有明确说明的情况下使用表示完全不同事物的术语(如类)。
  • i tried different things it wont work out! 例如?
  • 我知道你感觉很糟糕,因为你没有为我提供一个有用的例子。你刚刚给了我一个 msdn 示例的链接,就像我在 haan 之前没有尝试过那样的东西?顺便问一下,我如何 -1 你?

标签: c# webbrowser-control


【解决方案1】:

老问题,但由于很难找到: 如前所述,GetAttribute 是答案的一部分。诀窍是使用正确的属性名称:

var element = webBrowser2.Document.GetElementById("birthday_day");
var classes = element.GetAttribute("className"); // instead of just "class"

这不是 WebBrowser 控件的怪癖,而是 DOM API 的遗留问题,当时在 JavaScript 中使用诸如 class 之类的关键字作为属性名称是一个巨大的问题。

【讨论】:

    【解决方案2】:

    考虑使用 getAttribute - http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement.getattribute.aspx CLASS 和 NAME 都应该可用。

    【讨论】:

      【解决方案3】:

      您可能希望通过名称而不是类来执行此操作,因此您可以尝试使用 Document.All 属性:

      webBrowser2.Document.All["birthday_day"]
      

      【讨论】:

        猜你喜欢
        • 2011-02-25
        • 2011-01-30
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 2010-12-01
        • 2013-09-01
        • 2013-04-15
        相关资源
        最近更新 更多