如何在Java应用程序中使用PhantomJS的JavaScript API
How to use the JavaScript API of PhantomJS in a Java Application
我想用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"));
相关文章:
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 强制PhantomJS执行JavaScript错误
- 使用PhantomJS获取body onload javascript的值
- PhantomJS not running Javascript
- 如何使用PhantomJS从页面获取动态HTML和Javascript值
- 如何在PhantomJS中分析javascript
- phantomjs - 在页面加载后执行Javascript函数,然后输出新的更改
- 更新的问题::查询选择器可能存在PhantomJS/Javascript问题
- 使用 PhantomJS 从网站读取 JavaScript 变量
- 在 PhantomJS 中使用 C# 启用 JavaScript
- eval_in_page javascript执行在firefox中有效,但在phantomjs中无效
- 如何使用phantomJS从javascript生成html
- Phantomjs检查javascript是否存在并且正在工作
- 有些奇怪的javascript代码适用于所有主流浏览器,但使用phantomjs/qunit失败了
- 我可以运行网页's在PhantomJS中的JavaScript函数
- 如何在PhantomJS中用远程javascript替换DOM节点
- 如何调试PhantomJS Javascript测试
- PhantomJS / Javascript:写入文件而不是控制台
- 如何获得一个完整的html页面的高度在Phantomjs (javascript)
- PhantomJS javascript等待函数完成