我有一个 Java 7 程序(使用 WebStart 技术,仅适用于 Windows 7/8 计算机)。
我需要添加一个函数,以便我的程序点击具有已知 URL (https) 的页面上的按钮。
有些人建议 WebKit SWT,但我去了他们的网站,他们说该项目已停止。 ( http://www.genuitec.com/about/labs.html )
其他人说 JxBrowser 是唯一的选择,但它看起来超过 1,300 美元,这太疯狂了。 ( 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();
}
}
其他选项是:
关于Java SE : Open Web Page and Click a Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16746138/
目录Collection集合概述Collection集合继承结构图详细介绍Collection接口的常用方法详细介绍Collection的两个方法需要注意的问题Iterator迭代器迭代器的代码实现迭代器和remove方法冲突问题增强for循环Collection集合的子类List接口独有的常用方法ArratList集合介绍三种构造方法LinkedList集合链表的优缺点常用方法
目录前言一、运算符1.1算术运算符1.2关系运算符1.3逻辑运算符1.4位运算符1.5移位运算1.6条件运算符二、注释2.1基本规则2.2注释规范三、关键字四、顺序结构五、分支结构5.1if语句5.2switch语句六、循环结构6.1while循环6.2break6.3continue6.4for循环6.5do...while循环前言大家好~我又来了!今天给大家总结一下运算符和程序逻辑控制相关知识!让我们开始今天的学习吧!对了!给大家推荐一个刷题学习、面试神器——牛客网里面有非常多的题库,跟面试经验~非常的良心!!一、运算符1.1算术运算符基本四则运算符:+/*%这些运算符,C语言中已经讲到很
❤️❤️个人主页:摸鱼王胖嘟嘟🌟🌟作品专栏:【手把手带你学JavaSE系列】📑给大家推荐一款非常火的面试、刷题、学习神器👉牛客网👉点击注册一起刷题、学习、讨论收获大厂offer吧!目录前言一、项目需求二、实现思路三、代码实现1.book包Book类BookList类2.operations包AddOperation类BorrowOperation类DelOperation类DisplayOperation类ExitOperation类FindOperation类ReturnOperation类IOperation接口3.user包AdminUser类NormalUser类User类Main类四
🧛♂️iecne个人主页::iecne的学习日志💡每天关注iecne的作品,一起进步💪学C++必看iecne本文专栏:【JavaSE】🐳希望大家多多支持🥰一起进步呀!✨前言哈喽大家好,我是iecne,本期为大家带来的是【JavaSE】初识Java解决工具包问题详解。包教包会,快来看看吧!任务描述如何快速掌握函数,看iecne的【JavaSE】初识Java解决工具包问题详解文章目录✨前言任务描述一.初识Java1.1什么是Java1.2Java的优点👍1.3Java的软件推荐1.3.1开发工具1.3.2编译工具1.4Java语言特点1.5Java的安全性二.JDK和IDEA路劲问题三.hell
我不知道问这个问题是否合适,但我在这里问。到目前为止我尝试过的:在我所有的JavaSE(Swings、JavaFX)等项目中,我都使用MySQL、Oracle、MSSQLServer作为我的后端。但是对于其中任何一个,我都需要安装一个单独的软件,例如MySQL服务器等。我想知道是否有可能得到一些替代品,这样我就不需要为数据库安装任何额外的个人软件。数据库应该集成在我的JavaSE应用程序中,就像我们在普通软件中看到的那样。我们只是安装软件,而不是为其安装单独的DBMS。这样的数据库可以让我备份。有什么建议吗? 最佳答案 你可以使用A
我快读完“HeadFirstJava”这本书了。我研究这个的原因是我希望有一天能找到一份使用JavaEE进行开发的工作。现在我在想,我应该继续学习EE(转向HeadFirstServlets和JSP)还是应该花更多时间学习SE?这会有帮助吗?我会继续直接说我想在最快但最合适的时间(一种平衡的方式)学习EE。有什么建议吗?提前致谢! 最佳答案 对我来说,使用JavaEE很好,因为您已经充分使用了SE。当然,在编程论坛中闲逛会时不时地教给您一些仍然对您隐藏的东西。相信我会有很多。无论如何,我给你的建议很少,这将帮助你走上这条路。最好对J
我试图将Eclipse项目导入到IntelliJIDEA中,但我遇到了这个错误: 最佳答案 eclipse项目描述包含对“手动”定义的JDK(名为JavaSE-1.8)的引用。只需继续并自己在IntelliJ中为您的项目定义一个SDK。参见here必要的步骤:TodefineaJDKandamobileSDKinIntelliJIDEAOpentheProjectStructuredialog(e.g.Ctrl+Shift+Alt+S).Intheleftmostpane,underPlatformSettings,clickSDK
我使用Eclipse作为IDE,并在其外部使用Maven来使所有依赖项保持最新并更新Eclipse项目。在Eclipse中,我通常将JRE系统库指定为任何Java项目的执行环境,通常是“JavaSE-1.6”。在pom.xml中,我使用以下行:maven-compiler-plugin2.3.21.61.6maven-eclipse-plugin2.8[groupId].[artifactId]true2.0这好像是让Maven挑选一个JDK匹配1.6。它将其系统库分配给项目的类路径。但是,它直接使用jdk1.6.20而不是JavaSE-1.6。有没有办法让Maven改用JavaSE-
目录前言一、字符串查找二、字符串转换2.1数值和字符串转化2.2大小写转化2.3字符串和数组的转换2.4格式化三、字符串替换四、字符串拆分4.1拆分处理4.2部分拆分4.3拆分IP地址五、字符串截取六、其他的方法6.1Stringtrim()6.2booleanisEmpty()6.3intlength()6.4判断字符串开头结尾6.5booleancontains(Stringstr)七、StringBuilder&&StirngBuffer7.2String、StringBuffer、StringBuilder的区别前言上篇我们已经学习了String类的一些知识,接下来我们接着学习!一、字
博客制作不易,欢迎各位点赞👍+收藏⭐+关注前言在学习面向对象编程语言时,封装、继承、多态则是我们必须学习和使用的三大特征。本文通过举例,说明了该三大特征的基本权限特点。一、访问限定符范围private默认权限protectedpublic同一包中的同一类√√√√同一包中的不同类√√√不同包中的子类√√不同包中的非子类√注:访问权限用来控制方法或成员变量能否直接在类外使用。二、封装什么是封装封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。顾名思义,保护或防止类中的属性或方法被破坏,同时又提供一个接口,使对象可以使用该对象的封装属性或方法。主要使