【发布时间】:2013-12-04 17:43:23
【问题描述】:
我正在尝试使用 HtmlUnit 从 BBC 体育网站http://www.bbc.co.uk/sport/football/live-scores 上获取分数
页面加载到英超联赛,然后有一个下拉菜单选择其他联赛,然后单击“更新”按钮更新页面(可能通过 ajax)。
此代码可以正常获取更新的分数:
long startTime = System.currentTimeMillis();
String titleBar = getTitleBar(page);
HtmlOption option = ukGroupDropdown.getOptionByValue(competition);
ukGroupDropdown.setSelectedAttribute(option, true);
HtmlButton updateButton = (HtmlButton)page.getElementById("filter-nav-submit");
Thread.sleep(1000); // WHY???????
HtmlPage newPage = updateButton.click();
while(titleBar.equals(getTitleBar(newPage))) {
Thread.sleep(100);
}
System.out.println("Took " + (System.currentTimeMillis() - startTime));
return getMatches(newPage);
但是,如果我在单击更新按钮之前“取出 Thread.sleep”,则“newPage”永远不会更新。为什么会这样?有没有更健壮的方法(比如 titleBar 循环,它只从标题栏中获取文本,例如“巴克莱超级联赛”等)。
【问题讨论】:
标签: java javascript ajax htmlunit