java - 在 htmlunit 中选择下拉菜单

标签 java jython htmlunit

我在 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/

相关文章:

macos - 在 Mac 上安装 Jython 的最佳位置

java - HtmlUnit 单击一个按钮时会引发许多异常

java - HtmlUnit 访问没有 id 或 Name 的元素

Java:给定类名,我如何知道使用哪个 jar 文件?

python - 如何将日期时间类型(Jython 的)转换为 java.util.Date?

java - 寻找 “too many files” 原因

python - 在 Tomcat 上使用 Jython 部署 Flask 应用程序的最佳方式是什么?

使用 HtmlUnit 进行登录检查

java - 字符串数组到字符串

java - Android File.setReadyOnly() 未按预期工作