从跨度中读取值

Read Value from span

我想尝试一个使用 Geckofx 读取网站值的程序。现在我有以下问题,我没有得到所需的值,它向我显示它是空的。

我要访问的 HTML 代码:

<li id="box" class="tooltip" title="">
                <div class="classname"></div>
                <span class="value">
                    <span id="class_test" class="">48.066</span>
                </span>
</li>

48.066 是我要读取的值。

我现在搜索了大约 2 天的解决方案,我可以继续我的私人项目我希望任何人都可以帮助我:)

我尝试过的解决方案:

测试 1:

GeckoElement testelement = null;
testelement = (GeckoElement)Browser.Document.GetElementById("class_test");
string text = testelement.GetAttribute("value");

测试 2:

GeckoHtmlElement testelement = null;
            testelement = (GeckoHtmlElement)Browser.Document.GetHtmlElementById("class_test");
            string text = testelement.InnerHtml;

如果 testelement 为 null,则说明您未正确加载页面,或者来源不正确。

这很好用:

string content = "<html><body><li id=\"box\" class=\"tooltip\" title=\"\">"+
    "<div class=\"classname\"></div>" + 
    "<span class=\"value\">" + 
    "<span id=\"class_test\" class=\"\">48.066</span>" + 
    "</span></li></body></html>";
webBrowser1.LoadHtml(content, "http://www.example.com");

在webBrowser_DocumentCompleted中:

GeckoElement testelement = null;
testelement = (GeckoElement)webBrowser1.Document.GetElementById("class_test");
string text = testelement.InnerHtml; // 48.066

很有可能,您需要等待文档完成加载才能查找元素。

Browser.DocumentCompleted += (sender, e) => 
{
    var testElement = Browser.Document.GetElementById("class_test") as GeckoElement;
    // TODO: handle testElement being null
    string text = testElement.GetAttribute("value");
}