PhantomJS无头浏览器

时间:2016-11-21 14:21:59

标签: phantomjs responsys

我必须自动化一个测试用例,在该测试用例中创建特定仪表板中的列表。我们决定使用PhantomJS无头浏览器。由于我是新手,我尝试自己创建测试。以下是我打开目标网站时所遵循的步骤。

  1. 创建目录required=False
  2. phantoms并使用命令cd phantoms
  3. 安装了幻像模块
  4. 创建文件npm install phantom --save
  5. createlist.js内容:

    createlist.js

    当我执行命令var phantom = require('phantom'); var page = require('webpage'); page.open('http://facebook.com', function(status) { console.log("Status: " + status); if(status === "success") { page.render('example.png'); } phantom.exit(); }); 时,我收到以下错误:

    node create_list.js

    如果我尝试执行像

    这样的命令
    page.open('interact2.responsys.net/interact/jsp/jindex.jsp&#‌​39;, function(st atus) { ^ TypeError: page.open is not a function at Object.<anonymous> (C:\Users\shilshet\New folder\phantom\create_list.js:3 :6) at Module._compile (module.js:413:34)
    

    我收到此错误

    phantomjs  C:/Users/shilshet/New folder/phantom/create_list.js
    

    注意:我正在使用cygwin执行命令

    我出错了什么?我也将phantomjs模块安装在与node.js相同的文件夹中。

    除了使用无头浏览器之外,有没有人让我知道,如何通过REST API调用在Oracle Responsys中创建配置文件列表?

2 个答案:

答案 0 :(得分:1)

虽然这里的第一个答案应该有效,但它并不是实现所需要的最佳方式。解决问题的更简洁方法是将phantomjs可执行文件的位置添加到文件中定义的PATH变量,例如〜/ .bash_history。

可能未定义文件,因此您可能需要创建该文件,然后将PATH =&#34; / path /添加到/ phantomjs / executable&#34;

如果您希望通过GUI编辑PATH var:Edit PATH variable via Windows GUI

您需要执行此操作的原因是,您的系统本身会迭代“路径”中定义的路径。变量以确定可执行文件的位置。 由于phantomjs未包含在PATH变量中(在环境中不存在),并且您尝试运行“幻像”,因此您的系统根本不知道要调用哪个可执行文件(或者它不会#39 ;知道它存在)

这是更好的方法的原因是:

  1. 每次想要运行它时,你都不需要明确地写出phantomjs所在的路径(它看起来也更干净)
  2. 如果您从多个文件调用phantomjs,并且存储phantomjs的位置发生变化,会发生什么?如果你明确输入了phantomjs&#39;绝对的路径无处不在,那么你需要改变你键入它的每个地方!恶梦!使用这种方法,您只需在一个地方更改它;定义PATH变量的文件
  3. 向PATH env变量添加新文件路径非常传统。你不应该混淆它,但在这种情况下添加它是有道理的
  4. 为此:&#34;除了使用无头浏览器之外,有没有人让我知道,如何通过REST API调用在Oracle Responsys中创建配置文件列表?&#34; ...我建议问一个单独的问题。我个人不知道,但如果你提出新问题,你可能会得到一个人的支持。

    希望这有帮助!如果您需要任何帮助,请告诉我。

答案 1 :(得分:0)

你混淆了两种运行PhantomJS的方式。

更直接,更简单的方法是从命令行启动PhantomJS并将脚本路径作为参数。在Windows上你可以这样做:

"C:/Users/shilshet/New folder/phantom/phantomjs.exe" "C:/Users/shilshet/New folder/phantom/create_list.js"

请注意这里的引号,因为文件名中有空格,所以需要它们。