我在mac上安装了phantomjs。我想当我在终端phantomjs xx.js中输入时,它应该可以工作。然而,它只是返回
-bash:phantomjs:command未找到
然后我发现phantomjs文件位于
/usr/local/cell/phantomjs/2.0.0/bin
只有在该目录中,我才能使用命令phantomjs。
我的问题是如何使命令phantomjs在其他位置工作,例如/Usr/Documents/…谢谢 看看这个@zLan明白了。谢谢
我尝试使用pip安装,但它告诉我找不到这样的包
我还看到有人说我们可以使用brew和nodejs进行安装。这就是我试图安装brew的内容
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
它返回ruby没有找到的结果
我对nodejs一无所知
有人知道如何在服务器上安装PhantomJS吗?见见
Npm代表节点包管理器。
您可以从CLI或nodej
我正在Centos 6.3上使用PhantomJs 1.8.1进行自动化ui测试。当测试失败时,屏幕截图会保存到文件系统中
我的问题是,即使保存了屏幕截图,它们也不包含可读的字体
因此,如果网站的内容如下:
<style type="text/css">
@font-face
{
font-family:MyFont;
src: url('MyFont.ttf') format('truetype');
}
#barcodefont
{
font-famil
Phantomjs是基于webkit的。这意味着,对于主流浏览器来说,它实际上只是在模仿Chrome,对吗?除了用Selenium包装外,它是否提供了一种机制(或者有没有强制的方法)来为其他浏览器提供足够的测试覆盖率?否。当前的PhantomJS是WebKit的一个版本,大致相当于Chrome 13或Safari 5.1,但这两种浏览器都不是。(Chrome和Safari的表现也不一样。)(顺便说一句,PhantomJS 2.0有望将webkit单独链接,因此您可以使用不同的版本。)
如果您使用
我们正在使用GulpKarma插件来进行测试和幻影。我们在Windows上运行,PhantomJS是一个.exe文件。我们的测试文件已经增长,现在我们得到了错误“spawn enametolong”。从我从这个答案中得到的信息来看:对于Grunt来说,问题在于发送给PhantomJS的参数太大。有没有人遇到过类似的问题或知道解决方法(除了必须将测试文件合并到更少的文件中)
错误消息:
[14:20:19] Starting Karma server...
events.js:72
因此,Poltergeistsend_keys让您可以这样做:
element = find('input#id')
element.native.send_key('String')
element.native.send_keys('H', 'elo', :Left, 'l') # => 'Hello'
element.native.send_key(:Enter) # triggers Enter key
我希望发送如下组合键:
Control-A
Alt-C
找不到任何参考资
我正在尝试使用PhantomJS从一个简单的表单中获取结果。我正在使用jQuery,但不起作用。我有这个HTML:
幻影!
你的名字是
下面是Javascript代码:
var page=require('webpage').create();
第页打开('http://localhost/phantom/,函数(){
第页,包括https://code.jquery.com/jquery-3.1.1.slim.js“,函数(){
page.evaluate(函数(){
$('nombre'
我想让PhantomJS使用量角器。当我的代码需要到达保存在单独服务器上的后端端点时,我目前在Phantom(而不是Chrome)上遇到了一个问题。因此,我想使用--ignoressl errors选项对其进行测试
不幸的是,量角器文档中提供的文件似乎没有列出任何将参数传递给浏览器的方法。这是可能的吗?原来答案是一个封闭的量角器问题:
您可以使用phantomjs.cli.args属性将参数传递给浏览器,该属性接受参数数组。只需将其添加到配置中的功能属性中,在指定浏览器名的同一位置:
capab
使用phantomjs,如何在一个目录中运行所有脚本
例:我在c:\tests文件夹中有3个测试
\firsttest.js
\secondtest.js
\第三节
我在下面试过,但没有成功
幻影测试/
幻影测试/*
有人能告诉我如何做到这一点吗
谢谢,PhantomJS本身不是一个测试框架,也不是一个测试库:它提供了web应用程序的无头脚本测试
phantomjs中没有允许您运行一组脚本的选项;但也有一些流行的项目构建在PhantomJS之上,以提供方便的高级功能来进行测试。例如
如前所述
它
我不太明白如何使用幻影和摩卡在一起,特别是通过
我读过一些教程(在上的教程非常有用),但不知道如何使用Phantom和Mocha测试外部页面。我肯定我只需要轻轻推一下
在本教程中,作者创建了一个tests.js文件,其中包含一些DOM设置/操作以及一些mocha断言。然后,他创建一个单独的HTML文件,加载tests.js文件,并使用mocha phantomjs启动phantom并运行测试
这就是我有点困惑的地方,mochaPhantomJS.run()方法实际上是如何在幕后做事情的,它是否知
我一直得到相同的错误->Document.elementFromPoint的参数1不是有限浮点值
我正在尝试将“group”元素拖到addGroupBtn。然而,我似乎无法让任何模拟工作,我甚至在茶匙浏览器中运行,仍然得到相同的错误。我在控制台中进行了测试,但未能获得结果。也许这只是语法错误或我对文档的误解。此外,该框架是使用ember.js的RubyonRails
以下是此库的文档:
你有什么解决办法吗?@lft93ryt不幸的是我没有。我们放弃了测试,把它留给了当时的手工QA。祝你好运。
g
在一个网页抓取练习中,我需要点击链接,如果是html,让它们呈现内容,否则下载。我如何在phantom/slimerjs之上使用casperjs或其他工具来实现这一点
据我所知,phantom/slimerjs缺少支持下载的API。casperjs有一个下载API,但我不知道如何检查mime类型,并在下载其他内容时让html呈现。在PhantomJS和SlimerJS中,您可以为每个收到的响应注册一个侦听器:
page.onResourceReceived = function(response
A.html
我也尝试过phantomjs,但我无法在page.png中捕获b.html页面
注意:弹出页面的名称不是固定的。有一些方法和方法,因此您的代码如下所示
var casper = require('casper').create();
casper.start('http://localhost/test/a.html', function() {
this.echo(this.getTitle());
});
casper.thenClick('#testLabel')
我正在使用phantomjs测试一个web应用程序。但我面临页面加载的问题,这意味着有时会执行幻影脚本,但不会加载dom元素。如何使用回调对此类问题进行排序
resourceReceived(请求)、resourceRequested(资源)、resourceError(资源)如果要在页面完成加载后执行代码,请使用以下命令:
page.onLoadFinished = function()
{
// function body
var pageTitle = page.eval
标签: Phantomjs
qunitspawnenoentgrunt-contrib-qunit
GrunFile.js内容:
grunt.initConfig({
connect: {
server: {
options: {
port: 5005,
base: '.'
}
}
},
qunit: {
all: ['test/*.
我在我的VPS上运行了一个脚本,可以从谷歌生成有机访客。脚本生成.sh文件,打开该文件后,流量开始
我不是开发人员,因为我买了剧本
但是他们的支持最近没有得到回应,我需要一种方法来减少内存使用(它是98%)
谢谢大家98%的计算机内存?以GB为单位有什么用?问题发生在我的计算机和VPS上。计算机有16 GB内存。我需要解释一下脚本是如何工作的:它是基于代理的,一旦代理完成工作,另一个代理就会来替换它。现在,对于每个代理,任务管理器和我的需要手动终止它们该脚本正在使用16gb内存?显然,如果没有看
我正在尝试在Debian Stretch虚拟机中对预先构建的phantomjs进行全局安装。我意识到有一个预先构建的Debian包,但是
结果如下:
root@debian:~# npm install phantomjs-prebuilt -g
/usr/bin/phantomjs -> /usr/lib/node_modules/phantomjs-prebuilt/bin/phantomjs
> phantomjs-prebuilt@2.1.14 install /usr/l
我似乎不能做一个简单的表单提交
下面是我向谷歌搜索表单提交“测试”并打印结果的代码
var url = 'http://www.google.com/',
page = new WebPage();
page.open(url, function(status) {
if (status !== 'success')
{
console.log('Unable to access network');
phantom.exit();
PhantomJSAPI声称允许通过标准require接口访问“fs”和其他一些内置commonJS模块。grunt contrib jasmine声称使用phantomJS运行所有规范。但是当我使用grunt contrib jasmine时,require方法似乎不可用
fs = require('fs')
describe 'DesignService', ->
it 'test loadFromJSON', ->
jsonFile = fs.read("res
我正在尝试测试WebRTC应用程序。现在,我能做的最好的事情就是打开几个私人浏览器窗口,让它们相互交流,但这显然无法扩展
我正在寻找一种在一台机器上创建大量对等点的方法。我正在研究Phantom.js,但它似乎还不支持WebRTC。有什么建议吗?问题是PhantomJS目前基于QtWebKit,WebRTC需要Chromium和WebKit的组件
Phantom.js要重新实现这一切需要做大量的工作——编解码器支持也有问题,等等。我也想到,在无头环境中,很难测试getUserMedia(),这是
正在运行-Casper 1.1.0-beta3和Phantom 1.9.7的最新版本。但是,即使是最简单的casper脚本:
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {
this.echo('foo');
});
casper.run();
由于类型错误而失败
TypeError: 'undefined' is not a function (e
如何在Phantomjs图像上添加水印
有点像这样:
能page.evaluation帮我吗
任何注入或渲染都不应影响网页的实际外观。此戳记只应覆盖。在PhantomJS中渲染级别非常高。唯一的方法是通过页面将水印作为一个元素(想想位置:绝对)注入DOM。评估并在屏幕截图后将其删除。在PhantomJS中呈现的级别非常高。唯一的方法是通过页面将水印作为一个元素(想想位置:绝对的)注入DOM。评估并在屏幕截图后删除它。最终得到了它
从DOM方法中创建了一个必需的新html元素,然后在通过页面呈现
我正在尝试使用karma(在PhantomJS2上)、jasmine和酵素测试我的react应用程序。我注意到我的一些考试不及格。这似乎是因为每个It块都被调用了两次(我已经通过在我的所有It块中放置打印来确认了这一点,它们都打印了两次)。我已经找到了解决方案,但似乎没有一个有效。我将尽可能多地介绍细节
这是我的karma.config文件:
files: [
{ pattern: 'test/**/*.tsx' }
],
我也尝试过这些方法,但结果与上面相同:
files
当我尝试在angular2应用程序中使用phantomjs运行karma测试时
我得到这个错误。当我使用chrome作为karams浏览器时,它可以工作
TypeError: FileConstructor is not a constructor (evaluating 'new File(["file"], "filename")') (line 35)
通过使用无头chrome代替phantomjs解决了这个问题通过使用无头chrome代替phantomjs解决了这个问题
有人知道当网页使用flexbox时,使用phantomjs生成pdf是否有效吗?
我使用这个例子来生成一个pdf,除了使用flexbox的组件外,它工作得非常好
我还尝试从www.stackoverflow.com生成一个pdf(它对一些div使用flexbox),我得到了同样的问题,flexbox的元素几乎占据了100%的宽度,并防止在同一行中显示其他div。PhantomJS非常过时,你能迁移到吗?(是一个node.js模块,下面有铬)
PhantomJS非常过时,您可以迁移到吗?(是一
我正在尝试使用phantom js进行屏幕抓取
我从这个站点复制了一些phantomjs代码:
从这个脚本开始,我修改成以下内容:(参见javascript)
我的目标是从一个网站收集价格,这是“.price”标记的内部html,并将其收集到一个javascript数组中。现在我正在尝试将它们控制台.log()记录到我的屏幕上
我正在通过Ubuntu12.04控制台运行PhantomJSV1.6和JQueryV1.8。我正在将用户代理设置为“iPhone”
以下是我的输出:
nwo@aws-ch
我正在尝试使用PhantomJS,我真的很喜欢它,但它真的很慢
打开和退出的简单代码需要47347毫秒,速度非常慢
如果我试着用“sudo”运行,它需要1282,这是40倍的速度,为什么会发生这种情况?
我使用的是phantom 1.8.1,Mac OS X 10.7.5。不太清楚sudo部分,但这可能有效:
这是phantomjs模块与其依赖项shoe之间的套接字连接
您可以自己手动编辑鞋子。进入node_modules/phantom/shoe/index.js并将第8行更改为
var s
我正在尝试使用casperjs下载以下csv文件
var casper = require('casper').create({});
casper.start('http://69.50.252.196/');
casper.then(function(){
this.download('http://69.50.252.196/download.csv', 'downloaded.csv');
});
casper.run(function() {
this.exit();
我想知道如何在phantomjs中全局使用变量,以便它也可以在page.evaluate函数中使用
我已经阅读了前面的一些答案,但是能够很好地理解JSON可序列化参数可以传递给。
下面是一个使用此技术的非常基本的示例:
page.open('http://stackoverflow.com/', function(status) {
var title = page.evaluate(function(s) {
return document.querySelector(s).in
我有一段代码:
casper.start('http://some-page.local');
casper.then(function () {
this.capture(ss())
});
casper.thenEvaluate(function () {
document.querySelector("input[name='x']").value = 'x'
document.querySelector("input[name='y']").value = '
我正在尝试通过命令行以交互方式调试脚本。如果粘贴多行命令,解释器似乎无法解析返回的行。例如,试图粘贴
page.onConsoleMessage = function(msg) {
console.log(msg);
};
在以下情况下失败:
phantomjs> page.onConsoleMessage = function(msg) {
Expected token '}'
phantomjs://repl-input:1 in global code
phantomjs
我们在命令提示符下发现了这个错误
"# waitForExec() tests
Fatal Windows exception, code 0xc0000005.
PhantomJS has crashed. Please read the bug reporting guide at
<http://phantomjs.org/bug-reporting.html> and file a bug report."
“#waitForExec()测试
致命的Windows异常,代码
我正在使用CasperJS来完成我的自动化工作。但对于文件上传,我使用exec()和wget从其他网站上传图像到我的服务器,然后使用CasperJS和casper.uploadFile()在网站上发布图像
现在我尝试使用网站图片URL发布图片,我的意思是:
casper.then(function(){
this.uploadFile("input[type='file']", '/var/tmp/img.jpg');
})
但我想做:
casper.then(function(){
标签: Phantomjs
environment-variablesnpm-install
由于我们公司的网络安全配置,我手动下载并提取了phantomjs:
我已将此路径添加到我的path用户环境变量:
c:\users\hb31996\appdata\local\enthund\canopy\user\scripts;C:\Users\HB31996\AppData\Local\enthund\Canopy\User;C:\Users\HB31996\AppData\Local\enthund\Canopy\User\Scripts;C:\Users\HB31996\Phant
我试图通过标准输入发送一些phantomJS,但我打开的网页没有响应
下面是我尝试执行的javascript:
require('webpage').create().open('http://google.com', function() { console.log('done'); phantom.exit(); });
很直接,对吧
将其放入file.js中,并使用
phantomjs.exe file.js
它可以工作,但是通过REPL执行它
phantomjs.exe
phanto
我试图用PhantomJS(通过grunt mocha)运行我的mocha测试。第一个测试抛出一个引用错误:找不到变量:HTMLSpanElement,而第二个测试很好。在Chrome中,这两项测试都通过了。你知道为什么这可能不起作用吗
这将抛出“引用错误:找不到变量:HTMLSpanElement”:
it 'Instance of Span', ->
$el = $('<span></span>')
expect($el[0]).to.be.an
我是幻影新手。下面的示例中,我尝试创建一个脚本,该脚本登录到avito.ru,然后打开一个编辑页面,更改价格,提交表单,当服务器发回确认页面时,脚本应该提交一个新表单以进行更改
因此,周期应如下所示:
Log in
GET .../items/edit/678347092
POST to .../items/edit/678347092
GET .../stiralnaya_mashina_indesit_nws_7105_l_novaya_678347092/edit/confirm
POST
我是phantomjs的新手,正在尝试弄清楚它是如何工作的。我举这个例子
var page = require('webpage').create();
console.log('test');
page.open('https://github.com/', function() {
page.render('github.png');
phantom.exit();
});
放入文件并执行
./phantomjs phantomjs-2.0.0-macosx/examples/gi
我想使用PhantomJS检查各种URL的Google安全浏览状态,因为API不是我的选项。下面是script.js的简单代码:
var page = require('webpage').create();
page.open('https://transparencyreport.google.com/safe-browsing/search?url=newdaysnewdeals.com');
page.onLoadFinished = function () {
setTimeo
我想从我的程序中运行PhantomJs脚本,但由于脚本可能不是我编写的,我需要确保PhantomJs在执行完成或由于任何原因(例如无效语法、超时等)失败后退出。到目前为止,我所读到的所有内容都表明,必须始终包含PhantomJs要退出的指令phantom.exit()。有没有办法在PhantomJs执行给定脚本后自动关闭它
谢谢。创建一个文件运行javascript.js:
var system = require('system');
try {
for (var i=1; i<s
Phantomjs 1.4版(apt提供的最新版本)。我有一个js文件,包含以下内容:
var page = require('webpage').create();
var system = require('system');
当我运行它时,使用:
phantomjs testscript.js
我得到一个错误:
undefined:0 Unknown module system for require()
这是什么意思?是什么原因造成的?我试图从中运行示例,但似乎无法实现最简单的操作
我目前正在使用CasperJS(位于无头浏览器PhantomJS之上)进行网站抓取,我想从网站下载图片
有两种方法可以实现这一点,这两种方法都有很好的文档记录,但都不适合我的目的
我可以使用casper.capture()对网站的一部分进行截图,但图像被显示在其前面的HTML元素遮挡,因此这不是一个选项-我需要图像的原始源
当然,总是有casper.download(),这确实有效,但这只有在我使用--web security=no运行casperjs时才有效,考虑到我正在删除一个不是我自己的站
我正在测试一个具有iframe的web应用程序。
我正在使用phantomcss使用casper.withFrame拍摄iframe内组件的屏幕截图,但捕获的图像失真
我的主页是这样的-
<html>
<head>
</head>
<body>
<iframe id="testFrame" src="http://localhost:8080/testFrame" width="80%" height=
我已经写了一个自动的网页抓取过程,它可以导航到一系列的5页,并抓取所需的信息
我尝试使用SlimerJS运行脚本,以简化调试。整个过程的执行时间不到15秒。我试了很多次,结果都一样
然后我试着用PhantomJS运行它。令人惊讶的是,执行时间显著增加。每次都超过35秒
我希望PhantomJS能够更快,因为没有任何GUI的开放。我如何调试为什么在PhantomJS中花费更长的时间
如果我无法在PhantomJS中提高速度,那么在无头安装的生产服务器中使用SlimerJS是否明智
在Ubuntu1
我想将capybara用于无头浏览器,但我想使用以下驱动程序:Selenium::WebDriver::Remote::Http::Default.new
如何为水豚使用此驱动程序?需要知道使用该驱动程序的浏览器初始化,而不是poltergeist或webkit
以下是在capybara中进行chrome初始化的示例:
Capybara::Selenium::Driver.new(app,:browser=>:chrome)Selenium::WebDriver::Remote::Http::D
您好,我正在尝试使用phantom js拍摄一个带有阿拉伯语关键字的谷歌页面的截图,但在jpeg图像上,阿拉伯语字体丢失了,取而代之的是方框
Phantomjs版本-1.9.7
Centos 6.5解决此问题的步骤
1.检查是否提供阿拉伯语支持:
2.然后,如果可用,请安装阿拉伯语支持:
这就解决了问题
yum grouplist
yum groupinstall 'Arabic Support'
现在,我想把这本书中所有物品(iphone)的图片都刮下来。首先,我提取图像的所有链接,然后逐个向src发送请求,并将它们下载到文件夹“/phone/”中。这是我的密码:
from pyspider.libs.base_handler import *
class Handler(BaseHandler):
crawl_config = {
}
@every(minutes=24 * 60)
def on_start(self):
print
我使用casperJS/phantomJS获取div元素的内部文本,如下所示:
row.querySelector('.mydiv').innerText;
在德语页面上,我在显示德语umlauts等特殊字符时遇到问题(例如,u显示为ü)
如何使用innerText正确显示所有特殊字符
谢谢。请给我们看一下您的CasperJS脚本好吗?我无法复制您的问题。在您的终端中是否正确显示它是一个大问题,但当简单地按原样写入文件时,它肯定应该正确显示。
我正在使用以下代码,该代码使用带有回调的包来告诉我具有特定csspath的元素何时已完成其所有图像的加载:
imagesLoadedScript = "imagesLoaded( '#{csspath}', { background: true }, function(message) { console.log('PHANTOM CLIENT REPORTING: #{csspath} Images Loaded'); return message; })"
imagesL
在更改一些布尔值(在ngIf中使用)后调用fixture.detectChanges()时,我遇到以下错误:
html模板如下所示:
<form appFocusInvalidInput [formGroup]="form" (ngSubmit)="onSubmit()" >
<div class="form-group">
<div class="form-label" [translate]="'key1'"></div&g
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 15 页