如何在Java应用程序中使用PhantomJS的JavaScript API

How to use the JavaScript API of PhantomJS in a Java Application

本文关键字:PhantomJS JavaScript API Java 应用程序      更新时间:2023-09-26

我想用Java编写一个应用程序,它应该在无头浏览器中测试网站,例如PhantomJS或zombie.js。PhantomJS脚本是用JavaScript编写的,所以我如何在我的Java应用程序中使用PhantomJS提供的JavaScript API,而不使用Selenium和GhostDriver?这和纳森图书馆有关吗?

我需要完成的步骤的更多详细信息:
1.创建一个HTTP请求(例如使用:java.net.HttpUrlConnection.)并将其发送到Web服务器
2.获取相应的响应并将源保存在HTML文件中
3.在FAST无头浏览器中打开HTML文件(无HtmlUnit)
4.验证打开HTML响应时是否出现带有消息xxx的Alert

有人知道解决办法吗
附言:如果PhantomJs和GhostDriver支持警报处理,那会很容易,但事实并非如此!

如果您想在Java应用程序的无头浏览器中进行测试,阻力最小的路径是使用带有HtmlUnit的Selenium Java驱动程序。

Nashorn不会为PhantomJS向您提供JavaScript API;它也不会提供像"窗口"answers"文档"这样的浏览器对象。它将允许您在Java程序中使用您提供的任何"主机"(本地Java)对象运行JavaScript,并在JavaScript中创建Java对象,因此您当然可以在Java中重新实现PhantomJS API。但大概这不是你想要的。

您可以使用ScriptEngine在Java中评估PhantomJS脚本;有关详细信息,请参阅此处。示例:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("script.js"));