读取跨度值

问题描述 投票:1回答:2

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

我想访问的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;
c# html getelementbyid geckofx
2个回答
0
投票

如果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

0
投票

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

Browser.DocumentCompleted += (sender, e) => 
{
    var testElement = Browser.Document.GetElementById("class_test") as GeckoElement;
    // TODO: handle testElement being null
    string text = testElement.GetAttribute("value");
}
© www.soinside.com 2019 - 2024. All rights reserved.