我想尝试一个用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;
如果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");
}