Jcombobox选择元素

时间:2016-12-20 15:50:28

标签: java select jcombobox option htmlunit

我有一个JComboBox可以复制网站的下拉菜单。我通过HtmlUnit检索选项。检索数据时,jcombobox看起来像这样:

jcombobox1

现在很明显我想选择另一年(比如说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

在此代码之后,我的程序会等待生成的页面加载,然后根据更改的选项开始从站点收集数据。

在我描述的代码之后,输出组合框看起来像这样:

jcombobox2

在此之后它仍然会检索与2016年相关的数据。所以基本上选项2015以某种方式被选中,但不是以正确的方式。任何人都可以帮忙??

提前致谢!

1 个答案:

答案 0 :(得分:0)

HtmlSelect.setSelectedAttribute更改给定选项的所选属性的值。但通常你想改变选择框的选择而不是dom属性。 尝试使用HtmlOption#setSelected(true)。这将使选项成为选定的选项(包括取消选择当前选择的选项)。

在你的代码中执行choice.setSelected(true)。

希望有帮助...