我想尝试一个用Geckofx读出网站价值的程序。现在我有以下问题,我没有得到所需的值,它向我显示它是null。
我想访问的HTML代码:
$pObj = $Using:p | ConvertFrom-Json
ForEach ($pr in $pObj.PSObject.Properties)
{
#$pr.Name
#$pr.Value
}
48.066是我想要阅读的价值。
我现在搜索了大约2天的解决方案,我可以继续我的私人项目,我希望任何人都可以帮助我:)。
我试过的解决方案:
测试1:
<li id="box" class="tooltip" title="">
<div class="classname"></div>
<span class="value">
<span id="class_test" class="">48.066</span>
</span>
</li>
测试2:
GeckoElement testelement = null;
testelement = (GeckoElement)Browser.Document.GetElementById("class_test");
string text = testelement.GetAttribute("value");
答案 0 :(得分: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
答案 1 :(得分:0)
最有可能的是,您需要等待文档完成加载才能查找元素。
Browser.DocumentCompleted += (sender, e) =>
{
var testElement = Browser.Document.GetElementById("class_test") as GeckoElement;
// TODO: handle testElement being null
string text = testElement.GetAttribute("value");
}