我在 jython 中使用 htmlunit,但在选择下 zipper 接时遇到问题。我要访问的页面有一个包含其他 ajax 链接的表格,我可以单击它们并四处移动,看起来不错,但我似乎不知道如何单击允许在页面上显示更多链接的下拉菜单。页面(此下拉菜单会影响 ajax 表,因此它不会重定向我或任何其他内容)。
这是我的代码:
selectField1 = page.getElementById("pageNumSelection")
options2 = selectField1.getOptions()
theOption3 = options2[4]
这得到了我想要的选项,我验证它的正确性。所以我选择它:
MoreOnPage = selectField1.setSelectedAttribute(theOption3, True)
我被困在这里(不确定选择它是否有效,因为我没有收到任何消息,但我不确定下一步该做什么。如何刷新页面以查看更大的列表?什么时候单击链接,您所需要做的就是找到链接,然后选择 linkNameVariable.click() 到变量中,它就可以工作。但我不知道如何刷新下拉菜单。当我尝试使用 Web 客户端创建 xml 时基于 select 变量的页面,我仍然得到旧页面。
为了使它更容易一点,我使用了 htmlunit 脚本编写器并得到了一些应该可以工作的代码,但是它是 java,我不知道如何将它移植到 jython。这是:
try
{
page = webClient.getPage( url );
HtmlSelect selectField1 = (HtmlSelect) page.getElementById("pageNumSelection");
List<HtmlOption> options2 = selectField1.getOptions();
HtmlOption theOption3 = null;
for(HtmlOption option: options2)
{
if(option.getText().equals("100") )
{
theOption3 = option;
break;
}
}
selectField1.setSelectedAttribute(theOption3, true );
最佳答案
看看 HtmlForm getSelectedByName
HtmlSelect htmlSelect = form.getSelectByName("stuff[1].type");
HtmlOption htmlOption = htmlSelect.getOption(3);
htmlOption.setSelected(true);
关于java - 在 htmlunit 中选择下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365783/