在javascript 更新后,我在弄清楚如何获取某些 HTML 的内容时遇到了一些麻烦。
具体来说,我正在尝试从US Naval Observatory Master Clock获取当前时间。它有一个h1
元素,ID
其中USNOclk
显示当前时间。
当页面首次加载时,此元素设置为显示“正在加载...”,然后 javascript 启动并通过以下方式将其更新为当前时间
function showTime()
{
document.getElementById('USNOclk').innerHTML="Loading...<br />";
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null){
document.getElementById('USNOclk').innerHTML="Sorry, browser incapatible. <BR />";
return;
}
refresher = 0;
startResponse = new Date().getTime();
var url="http://tycho.usno.navy.mil/cgi-bin/time.pl?n="+ startResponse;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
所以,问题是我不确定如何获得更新的时间。当我检查元素时,我看到“正在加载...”作为元素的内容h1
。
我已经仔细检查了 javascript 是否已启用,并且我尝试过调用该waitForBackgroundJavaScript
函数,webclient
希望它会给 javascript 时间来开始更新内容。然而,目前还没有成功。
我当前的代码:
import com.gargoylesoftware.htmlunit._
import com.gargoylesoftware.htmlunit.html.HtmlPage
object AtomicTime {
def main(args: Array[String]): Unit = {
val url = "http://tycho.usno.navy.mil/what.html"
val client = new WebClient(BrowserVersion.CHROME)
println(client.isJavaScriptEnabled()) // returns true
client.waitForBackgroundJavaScript(10000)
// client.waitForBackgroundJavaScriptStartingBefore(10000) //tried this one too without success
var response: HtmlPage = client.getPage(url)
println(response.asText())
}
}
如何触发 javascript 来更新 HTML?