当前位置: 首页 > 面试题库 >

Java SE:打开网页,然后单击一个按钮

郑功
2023-03-14
问题内容

我有一个Java 7程序(使用WebStart技术,仅适用于Windows 7/8计算机)。

我需要添加一个函数,以便我的程序单击具有已知URL(https)的页面上的按钮。

有人建议使用WebKit
SWT,但我去了他们的网站,他们说该项目已终止。(http://www.genuitec.com/about/labs.html)

其他人说,JxBrowser是唯一的选择,但是看起来它已经超过1300美元,这太疯狂了。(http://www.teamdev.com/jxbrowser/onlinedemo/)

我正在寻找一种简单,免费,轻便,能够打开HTTPS链接,解析HTML,通过DOM访问按钮并单击它的东西。如果有JS处理程序,也许还有一些JavaScript。

谢谢你的帮助。


问题答案:

您可能正在寻找HtmlUnit-一种 “用于Java程序的无GUI浏览器”

这是打开的示例代码,使用该表单进行google.com搜索"htmlunit"并打印结果数。

import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;

public class HtmlUnitFormExample {
    public static void main(String[] args) throws Exception {
        WebClient webClient = new WebClient();
        HtmlPage page = webClient.getPage("http://www.google.com");

        HtmlInput searchBox = page.getElementByName("q");
        searchBox.setValueAttribute("htmlunit");

        HtmlSubmitInput googleSearchSubmitButton = 
                          page.getElementByName("btnG"); // sometimes it's "btnK"
        page=googleSearchSubmitButton.click();

        HtmlDivision resultStatsDiv =
                                page.getFirstByXPath("//div[@id='resultStats']");

        System.out.println(resultStatsDiv.asText()); // About 309,000 results
        webClient.closeAllWindows();
    }
}

其他选项是:

  • Selenium:将打开诸如Firefox的浏览器并进行操作。
  • Watij:也将在自己的窗口中打开浏览器。
  • Jsoup:很好的解析器。不过没有JavaScript。


 类似资料:
  • 问题内容: 我想要的是发布需求,然后单击“ openTab”按钮,在新选项卡中打开响应html。无法使用来执行此操作。我认为这可能很简单,但是我找不到办法。 问题答案: 您可以使用$ window服务在此处在控制器中完成所有操作。$ window是全局浏览器对象窗口的包装。 为此,将$ window注入到控制器中,如下所示 重定向到动态路由时效果很好

  • 问题内容: 我有一个netbeans Java应用程序,该应用程序在启动时应显示JFrame(StartUpWindow类扩展为JFrame类),并带有一些选项,然后用户单击一个按钮,然后关闭JFrame并打开一个新的(MainWindow类)。 因此,我该如何正确执行此操作。我显然在StartupWindow中的按钮上设置了一个单击处理程序,但是我应该在该处理程序中添加什么以便关闭StartUp

  • 问题内容: 我正在尝试实施以下测试方案: 单击页面上的徽标 断言有一个新的浏览器窗口打开(Chrome中的选项卡)并检查当前URL 问题在于,在新浏览器窗口中打开的页面 是非角度页面, 而我正在执行单击操作的 主页 是 角度页面 。 这是我的第一次尝试: 失败与: 错误:等待量角器与页面同步时出错:“在窗口中找不到角度” 这是可以理解的。 我的第二次尝试是使用布尔标志: 实际上,这使该特定测试通过

  • 我正在编写一个包含许多按钮的程序,当我单击其中一个按钮时,我希望它打开一个包含一些txt文件信息的JTextArea。我试图将JTextArea添加到按钮中,但它没有打开任何东西。我是Java新手,所以我不知道这是否是正确的方法。 我在GUI中定义了按钮和JTextArea 这是我在public void actionPerformed(ActionEvent e)中编写的代码

  • 问题内容: 我需要自动单击网页中的任何“添加”按钮,如下所示: “ https://groceries.asda.com/search/yoghurt ” 但是,页面中的“添加”按钮都没有名称或ID。所以我不能使用Selenium包中的命令。 谁能帮我? 问题答案: 要单击特定产品的任何特定按钮,可以编写如下方法: 现在,您可以单击传递其标题的任何按钮,如下所示:

  • 在我的程序中,它将单击浏览器中的一个按钮,并且在该页面中,应该会出现另一个按钮。出现该按钮后,我的程序将立即运行下一个操作来单击下一个按钮。我目前收到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击下一个按钮。我的问题是,我该怎么做才能让我的程序等到我可以点击按钮,再点击按钮? 这就是我的程序底部的代码的样子。