HtmlUnit需要线程睡眠'在'单击按钮
HtmlUnit need thread sleep 'before' clicking button?
我正试图使用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"就永远不会更新。为什么会这样?还有没有更强大的方法(比如标题栏循环,只从标题栏中获取文本,例如"巴克莱超级联赛"等)。
也许行:
ukGroupDropdown.setSelectedAttribute(option, true);
正在执行异步(AJAX)调用和
updateButton.click();
队伍需要等待前者结束。
例如,该按钮可以被禁用,但在选择项目时,它可能会被启用。
相关文章:
- 单击按钮以等待单击按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- 单击按钮时循环浏览匹配的表
- 单击按钮后启动javascript提示
- 单击按钮时在灯箱中显示不同的内容
- 单击按钮时加载数据
- 如何在不需要单击按钮的情况下获取选项的值
- 单击按钮时显示随机字符串
- 在单击按钮前后禁用提交按钮
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 单击按钮时Div Increment
- 若单击按钮,则更改Javascript中的变量
- 单击按钮更改加载到表中的JSON文件
- 如何在单击按钮时显示2行1列的表格
- 单击按钮前运行事件
- 如何删除父表行时;删除“;在React JS中单击按钮
- 如何创建一个表并在单击按钮时插入此标签和文本字段
- JavaScript-onClick将按钮ID或单击按钮的文本传递给函数
- 如何在单击按钮时显示一个分区,同时隐藏另一个分区