我有一个JComboBox可以复制网站的下拉菜单。我通过HtmlUnit检索选项。检索数据时,jcombobox看起来像这样:
现在很明显我想选择另一年(比如说2015年)并检索当年的数据,当我这样做时,下面的工作就会被执行:
int option = jComboBox_year.getSelectedIndex();
//Gets the index of the selected combobox option
HtmlSelect year = (HtmlSelect) page2.getElementById("dip_selector_select_i00083_5");
//this selects the dropdownmenu from the webpage
HtmlOption choice = year.getOption(index);
//gets the option with the right index from the dropdownmenu
year.setSelectedAttribute(choice, true);
//sets the selected attribute at the website
在此代码之后,我的程序会等待生成的页面加载,然后根据更改的选项开始从站点收集数据。
在我描述的代码之后,输出组合框看起来像这样:
在此之后它仍然会检索与2016年相关的数据。所以基本上选项2015以某种方式被选中,但不是以正确的方式。任何人都可以帮忙??
提前致谢!
答案 0 :(得分:0)
HtmlSelect.setSelectedAttribute更改给定选项的所选属性的值。但通常你想改变选择框的选择而不是dom属性。 尝试使用HtmlOption#setSelected(true)。这将使选项成为选定的选项(包括取消选择当前选择的选项)。
在你的代码中执行choice.setSelected(true)。
希望有帮助...