PhantomJS - безголовый браузер
Я должен автоматизировать тестовый случай, в котором создается список в определенной панели. Мы решили использовать безголовый браузер PhantomJS. Поскольку я новичок в этом, я попытался создать тест самостоятельно. Ниже приведены шаги, которые я выполнил, чтобы открыть целевой веб-сайт.
- Созданный каталог
phantoms
cd phantoms
и установил фантомный модуль с помощью командыnpm install phantom --save
- Созданный файл
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', 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
Я получаю эту ошибку
bash: phantomjs: command not found
Примечание: я использую Cygwin для выполнения команд
Что я иду не так? Я установил модуль phantomjs также в той же папке, что и мой node.js.
Может ли кто-нибудь дать мне знать, кроме использования безголового браузера, как создать список профилей в ответах Oracle через вызов REST API?
2 ответа
Хотя первый ответ здесь должен работать, это не лучший способ достичь того, что вам нужно. Более чистый способ решения вашей проблемы - добавить местоположение исполняемого файла phantomjs в переменную PATH, определенную в файле, например ~/.bash_history.
Файл не может быть определен, поэтому вам может потребоваться создать файл, а затем добавить PATH="/path/to/phantomjs/executetable"
Если вы предпочитаете редактировать переменную PATH через GUI: отредактируйте переменную PATH через Windows GUI
Причина, по которой вам нужно это сделать, заключается в том, что ваша система изначально выполняет итерации по путям, определенным в переменной 'PATH', чтобы определить, где находятся исполняемые файлы. Поскольку phantomjs не включен в переменную PATH (не существует в среде), и вы пытаетесь запустить 'phantomjs', ваша система просто не знает, какой исполняемый файл вызывать (или, скорее, она не знает, что он существует)
Причина, по которой это лучший подход:
- Вам не нужно явно указывать путь к месту расположения phantomjs каждый раз, когда вы хотите его запустить (это тоже выглядит чище)
- Что произойдет, если вы вызовете phantomjs из нескольких файлов, и место хранения phantomjs изменится? Если вы явно ввели абсолютный путь phantomjs везде, то вам нужно менять КАЖДОЕ место, где вы его ввели! Кошмарный сон! При таком подходе вы просто меняете его в одном месте; файл, который определяет вашу переменную PATH
- Довольно просто добавить новые пути к файлам в переменную PATH env. Не стоит загромождать его, но в этом случае имеет смысл добавить его
Для этого: "Может ли кто-нибудь дать мне знать, кроме использования браузера без головы, как создать список профилей в Oracle response через вызов REST API?"... Я бы порекомендовал задать отдельный вопрос. Я лично не знаю, но если вы поднимете новый вопрос, вы можете получить поддержку от кого-то, кто знает.
Надеюсь это поможет! Если вам нужна какая-либо помощь, дайте мне знать.
Вы перепутали два способа запуска PhantomJS.
Более простой и простой способ - просто запустить PhantomJS из командной строки и указать путь сценария в качестве аргумента. На Windows вы бы сделали это так:
"C:/Users/shilshet/New folder/phantom/phantomjs.exe" "C:/Users/shilshet/New folder/phantom/create_list.js"
Обратите внимание на кавычки здесь, они необходимы, потому что в именах файлов есть пробелы.