我有一个带有登录表单的网站。如果用户未登录并尝试访问内部页面,它将被重定向到默认页面。例如,如果我尝试访问
http://siteURL.PhantomPrint.aspx我将被重定向到http://siteURL/Default.aspx?ReturnUrl=PhantomPrint.aspx.登录后,将自动重定向到页面
在重定向之后,我想用Phantomjs呈现页面并将其保存为pdf。问题是渲染发生在页面加载完成之前,只有在使用超时时才能正确渲染页面。在这种情况下,如果页面加载时间比正常时间
是否有一种简单的方法可以在casper脚本中获取当前导航步骤(如调试输出:“步骤xx/yy在ZZZms中完成”)。或者唯一的办法就是自己数步?
谢谢不,CasperJS不跟踪步骤执行时间或当前步骤索引。您可以自己做,也可以对casper实例进行猴子补丁。如果你决定自己做的话
您可以从周围的步骤或步骤中确定相关步骤的时间
使用、和事件。这将无法正常工作,因为casper.start或casper.thenOpen没有发出step.complete,但是step.start是无效的
我正在尝试使用捕获示例打开一个使用PhantomJS的网站
var page = require('webpage').create();
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
代码在我的本地机器上运行良好,使用的是Ubuntu 14.04。但是,当我在虚拟服务器上运行代码时,永远不会调用回调,脚本也不会退出。服务器和我的本地计算机正在运行完
我正在使用casperjs,它反过来又在slimerjs和phantomxhr上运行。我不确定phantomxhr是否支持slimerjs+capserjs,但我在运行代码时遇到了“window.sinon is undefined”错误(错误在phantomxhr.js第124行)。使用phantomjs运行casperjs时,一切都正常
看起来在注入给定phantomxhr的sinon js脚本时出现了问题(第24行)。所以我所做的是,在测试文件'phantom.injectJs(“sino
我正在一个网站上爬行。当我突然意识到元素丢失时,我必须更改给定工作的日期。当我截屏时,元素确实丢失了。有没有办法渲染该元素?该网站使用Angularjs运行,因为我注意到HTML代码中的ng。这是图片,第一张是桌面截图,第二张是幻影
我找到了解决方法,只需等待angularjs加载到phantomjs上。估计需要5秒钟才能加载。这里最好的方法是setTimeout函数。我找到了解决方法,只需等待angularjs加载到phantomjs上。估计需要5秒钟才能加载。这里最好的方法是setTime
在SpookyJS中,是否有一个“each”函数等同于Casper的函数
我想你现在可以自己回答了。你能找到解决办法吗?我在SpookyJS github页面上看到了你的帖子,但答案对我来说并不适用,它们有点模糊,我想我没有。但是,实际上可以通过在then块中添加一个循环,并让循环在每次迭代中创建一个then块来解决这个问题。
我被困在这一点上,我看到yslow不再适用于PhantomJS 2.0,因为API中的phantom.args属性已被弃用。但在早期版本中,它是有效的
请告诉我哪个版本的PhantomJS可以与yslow一起使用?从PhantomJS 2.0开始。请使用不推荐的旧版本,或者编辑yslow脚本以供使用。请注意,系统模块必须是必需的
system.args[0]始终是脚本名称,system.args[1]是第一个,但在phantom.args[0]之前是第一个参数。因此,您还需要将所有索引更改一次
在phantomjs的文档中,他们说:
错误处理
为了轻松捕获网页中发生的错误(无论是语法错误还是其他抛出的异常),已为网页对象添加了OneError处理程序。此类处理程序的一个示例是:
现在,如果页面打开一个包含一些JavaScript异常的站点,那么将打印出详细信息(包括堆栈跟踪)
好吧,我创建了一些“坏”页面(javascript导致异常的页面),我得到了
抛出的错误,但跟踪中没有任何内容
有人能帮忙吗
以下是我的一个案例:
html:
<!docType>
<html&
CasperJS版本1.1.0-beta3
casper.start(someLink);
function getUrl(link) {
casper.thenOpen(basePath + link);
casper.then(function() {
var par1 = this.fetchText('body > table > tbody > tr > td > div > table > tbody &g
是否有任何方法可以始终如一地检测PhantomJS/CasperJS?我一直在处理大量使用它构建的恶意垃圾邮件,并且基本上能够基于某些行为来阻止它们,但我很好奇是否有可靠的方法来知道CasperJS是否正在使用,因为处理不断的适应变得有点烦人
我不相信使用CAPTCHA。这是一种负面的用户体验,ReCaptcha从未在我的MediaWiki安装中阻止垃圾邮件。由于我们的网站没有用户注册(匿名讨论板),我们需要为每一篇文章提供验证码条目。我们每天都会收到几千条合法的帖子,一个验证码就会看到这个数字
我有一个包含以下内容的phantomJS脚本:
page.open(url, function (status) {
if (status === "fail") { /* handle failure */ }
});
状态检查有时有效,但即使请求返回500,状态仍将为“成功”。如何获取实际请求状态代码?您可以这样做:
var page=require('webpage')。create(),
系统=要求(“系统”),
资源=[];
第页打开('http://google.com,功
我们有一个基于角度的应用程序,无法通过id找到动态元素
我们提到
并调整了窗口大小,但没有乐趣?这可能是未渲染元素/类的问题
有两种选择:
添加
或者,写上定制服务生-
我强烈推荐第二个选项。这可能是未呈现元素/类的问题
有两种选择:
添加
或者,写上定制服务生-
我强烈推荐第二种选择
我正在使用casperjs测试一个类似网格的小部件。网格包含大量行。按住Shift键可以多选行,然后单击两个直接行,两次单击之间的行将被选中。下面是我测试此功能的代码段:
casper.start(mytesturl);
this.then(function sendKeydown(){
//send Shift keydown event
this.page.sendEvent('keydown', '', null, null, 0x02000000);
});
this.
我已经在网上搜索了3个多小时,现在正在寻找播放音频文件的相关方法,但不幸的是,我找不到任何有用的方法。我有一个CasperJS,它可以自动执行一些任务,我希望它在完成所有任务后播放一个音频文件(例如beep.wav)。我想知道这是否可能
casper.run(function(casper) {
fs.write( saveDir, JSON.stringify(content, null, ' '), 'w');
// play an audio file before ex
我从未使用phantomJs做过任何事情,但出于某种原因,它一次打开了5个进程,它们占用了我90%的CPU。我不能只是卸载它,因为卸载程序已损坏。我尝试过谷歌上发布的每一个解决方案,但都不管用:/这是我的Taskmanager的屏幕截图PhantomJS没有(un)安装程序,你是如何得到它的,可能是作为其他软件包的一部分?很可能你有一个运行这些PhantomJS的“编排”病毒(甚至可以代表你点击广告…)。尝试搜索运行它们的用户
在运行grunt服务器进行开发时,我如何单独使用grunt qunit任务来运行测试。
试图将[“test/***/.html”]传递给all属性时,该属性无法运行并返回(警告:0/0断言运行(0ms)使用)
看起来,它没有触发phantomjs实例,也没有找到这些脑袋。
所以我尝试了以下方法
grunt.initConfig({
....
qunit: {
all: {
options: {
我正在PhantomJS上编写登录表单授权
page.evaluate(function() {
...
$("input[name='username']").val("login");
$("input[name='password']").val("pass");
...
}
如何使用凭据呈现刷新的页面
console.log(document.querySelectorAll('html')[0].outerHTML);
仅显示原始内容
提前感谢。您不需要使用jQuery来选择输入
我正试图手动从git安装casperjs
但是我得到了错误“ln:未能创建符号链接”/usr/local/bin/casperjs”:没有这样的文件或目录。
请回答我,在这种情况下我能做什么?我的操作系统是windows8。您不需要在Windows上创建符号链接。只需将CasperJS bin目录添加到%命令“ln-sf pwd/bin/CasperJS/usr/local/bin/CasperJS”对linux系统有效,对windows无效
您必须在Windows中设置环境变量,并将caspe
我已经扩展了casperjs,使用了一些新方法,比如:
casper.getText=函数(选择器){
如果(此.存在(选择器)){
返回此.getHTML(选择器);
}
否则{
返回“”;
}
};
我必须在我编写的每个脚本上添加这些函数
因此,我在放置其他模块(colorizer.js,mouse.js等)的同一位置创建了一个新文件custom.js。
custom.js包含以下代码:
var require=patchRequire(require);
var casper=requi
我无法与文本字段text\u字段(:css=>'.search query')交互。发送\u键(:enter)
,它在firefox和chrome上运行良好,但在Phantomjs中不起作用
<div class="search search-session">
<form class="search-form search-form-session" action="#">
<i class="icon-search"></i>
要在登录控制台之前压缩页面内容
只需记录页面。内容会提供不需要的空间。相关的我会说,不要这样做。也相关的:但它在PhantomJS中不能直接使用
每个超级基金网站都有一个唯一的标识符(例如KYD980501076),可以在url中对其进行编码以生成结果页:
对于每一个超级基金网站,我想记录下它们的名字、城市、州、纬度和经度
下面的代码可以找到所有的TDs,但我无法让它只查看类为“result”的表
非常感谢您的任何见解
(接下来的步骤是将结果附加到json文件)
如果您愿意尝试不同的解决方案,您可以使用并遵循
如果这样做,就可以在jquery中编写解析器,并将结果作为json返回
免责声明:我在phantomjscloud上工作过相关答
这有助于提供有关自制系统如何工作的一些线索。我已经使用brew install PhantomJS安装了PhantomJS,但我需要应用一些补丁。我可以看到公式已经应用了一个补丁:
# Qt Yosemite build fix. Upstream commit/PR:
# https://qt.gitorious.org/qt
实际上,我是在幻影的帮助下获得最终输出的pdf A4。我的内容是精确的A4大小(595*842像素)。但是幻影pdf输出大于A4大小(595*842像素)
有人知道吗???请帮帮我。你实际上可以使用PhantomJS方法paperSize。您将能够指定页面大小、宽度、高度、格式等。以下是您的链接:
我想创建示例脚本以登录我的网站。
我的剧本是这样的:
var page = require("webpage").create();
var system = require("system");
var data = {
"username": system.args[1],
"password": system.args[2]
}
function login(data){
page.open("http://localhost/mywebsite/logi
我已经通过了一个网站,我想不出什么。该网站使用从命令行调用的CasperJS,该命令行登录到该网站,然后从下载的HTML生成PDF。我认为CasperJS将使用PhantomJS生成PDF,使用capture()
我需要添加页码和总页数到PDF。例如,第1页,共5页。但是我在网上找不到任何关于如何使用CasperJS和PhantomJS的细节。可能吗
下载过程会在服务器上创建以下JS文件,其名称如下:
var casper = require('casper').create({
ver
是否可以在页面中传递变量。请在下面的示例中进行评估
function myFunction(webpage, arg1, arg2){
var page = require('webpage').create();
page.viewportSize = { width: 1920, height: 1080 };
page.open(webpage, function (status){
if (status == 'success') {
page.
当我尝试使用yeoman web generator时,虽然它工作正常,但纵观整个生成过程,它总是给我以下一些错误,无论我使用的是什么生成器,它们总是存在
npm ERR! phantomjs@1.9.7-6 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs@1.9.7-6 install script.
npm ERR! This is most likely
我想使用Spookyjs向特定服务器发送一个带有JSON主体的post请求。我是怎么做到的请帮我解决这个问题 如果您使用的是spooky,那么您使用的是nodeJS。收集我猜你想用spooky/casper处理的信息,将它们传递回nodeJS,解析数据并发布。如果你想得到更具体的答案,请详细说明你的问题。
使用出色的工具NReco.PdfGenerator(以PhantomJs为引擎)以c#生成报告时,遇到了一个阿拉伯语符号的问题。
HTML布局通常在浏览器中呈现。但是生成一个PDF我得到了
HTML有
欢迎任何想法首先,确保在HTML部分中有以下元标记:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
是-我肯定有。如果删除此标记,则会有其他非阿拉伯语符号。@AngryDev如何向包装器提
我一直在尝试测试一个网页,看看一个功能是否有效。我尝试这样做的方式是将getFormValues的输出与该功能正常工作时的字符串进行比较。我编写了以下任务进行检查:
casper.then(function seeifsaveworked() {
if (this.getFormValues('.tf-field-inner') === 'foobar') {
this.echo("SUCCESS: The site description has been succes
我正试图用phantomjs创建一个图形到png的转换器,但很难让它正常工作。我看到的几乎每一个例子都使用一些外部URL,就好像你对它所做的一切都是刮取,而且文档非常缺乏
为了进行测试,我创建了一个非常简单的d3函数,其中添加了一个标记和一个蓝色圆圈。查看SO上的其他问题和示例,我将其连接到onLoadFinish,但该事件从未触发
我猜我需要打开页面,但是打开只使用了一个url,这对我来说并不相关(再说一遍,文档完全缺乏信息。即使我看到我认为可能相关的东西,我的。这是)
这是我的密码:
var
升级到gulp mocha phantomjs版本0.8.0后,我遇到了一些问题:
1)通过url对远程服务器运行时出错:
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///D:/MyDev/ljs_app/trunk/periscope/build/node_modules/gulp-mocha-phant
mjs/node_modules/mocha-phant
我想安装phantomjs(1.9.1)的旧版本。如果我跑
brew install phantomjs
它将安装新版本(2.0.0)。您可以在存储库中找到受支持的早期版本。1.9.1没有公式,但您可以使用brew安装自制/versions/phantomjs192安装1.9.2。(如果您确实需要,可以为1.9.1提供一个。)您可以使用brew search phantomjs查找版本化公式。请尝试以下命令:
brew install https://raw.githubusercontent
本地主机被击中,但什么也没发生。console.log(req)时没有请求
首先,编写路由函数就像编写中间件一样:
app.use(bodyParser.json());
app.post('/', function(req, res, next) {
console.log(req);
res.send('s');
});
app.listen(3000);
我假设您正在尝试发送一个JSON,如果您没有,您应该更改您的正文解析。如果您试图发送JSON,则应修改AJAX,因为
标签: Phantomjs
puppeteergoogle-chrome-headless
我以前就被phantomjs创建了一个服务器端渲染,就像这样
客户端
// when all client ajax request and page render finished
window.callPhantom('page.done')
// when page not found
window.callPhantom('page.fail')
page.onCallback = function(status) {
// when page render finished
在运行PhantomJS提供的rasterize.js示例时,我发现我必须等待20秒或更长时间,直到生成网页图像
有没有任何可能的方法可以在不消耗大量资源的情况下加快速度?我基本上是想快速生成从装有PhantomJS的网页上捕获的一系列连续图像。如果我能以某种方式将PhantomJ输出到视频流中,那就太好了
现在,我想用PhantomJS在1~2秒内找到一个网页截图。如果已经有一个项目或库可以实现这一点,那也太好了。如果您的图像URL被硬编码为html响应,那么您可以执行以下操作:
获取html
感谢您阅读我的主题,如果有人能提出任何其他我应该探索的途径来实现以下目标,我将不胜感激
使用CasperJS或PhantomJS,我需要禁用属于我导航的页面的所有JavaScript,使其不被执行,同时仍然能够使用casper.execute运行我自己的JavaScript
有人知道我能做这件事的方法吗
是否可以使用onResourceRequested或onResourceReceived修改HTTP头或正文?或者有条件地取消请求?还是只读
在提供原始HTML源进行解析之前,您可以修改它吗
我正在编写这个应用程序,它使用来自网站的一些信息,我正在使用PhantomJs来提取这些信息。现在,我希望用户能够运行我的应用程序,而无需在他们的系统中使用PhantomJs。这样更像是一个服务电话
我遵循了以下指南:
为了让PhantomJs工作并获得我需要的某些站点的信息,现在我可以使用Iron.io的web界面将工作人员排队并在日志中获得结果
我想知道是否有办法以编程方式获得执行结果。我已经查看了,但我需要进行身份验证,还需要提供不同的任务ID(我不知道如何获取)。Queue task=>
我的Debian服务器上的Simplerasterize.jsscript(来自phantomjs示例)有时会写入完全透明的图像(如果是PNG),但它有规则的维度。这种情况大多数时候都会发生,但很少有时候会形成正确的形象。
我不知道为什么会这样
我的系统:
Debian GNU/Linux 7.2 (wheezy) with ext4
Phantomjs 1.9.2
rendering sites: http://www.yahoo.com/ and http://phantomjs.org/
我必须从给定的url中删除HTML文档。在我的本地主机上,Phantom JS脚本返回url。但在实时服务器上,我得到了403禁止状态
scraper.js
var system = require('system');
var page = require('webpage').create();
$url = system.args[1];
page.open($url, function(status) {
if (status == "success") {
我已经在网上搜索过了,但不幸的是,我找不到我想要的答案。PhantomJ支持通配符删除吗?这就是我在他们网站上找到的例子
var fs = require('fs');
var toDelete = 'someFile.txt';
fs.remove(toDelete);
phantom.exit();
但这不是我想要的。我想删除多个相同类型的文件。例如,假设我想删除此目录的所有(*.png)png。请帮助。我认为在PhantomJS文件系统模块中没有类似glob的方法,但是您可以简单地读
标签: Phantomjs
casperjsconfirmbrowser-automation
我正在创建一个自动化脚本来进行测试。因此,当我的脚本试图通过单击“注销”来注销时,它会提示确认窗口,脚本必须在该窗口中选择“确定”
Source page looks likes:
<script type="text/javascript">
function logOut() {
if (confirm("Are you sure you want to log out of the system?\nClick OK for Yes
在PhantomJS中,webpage.open接受一个状态参数设置为“success”或“fail”的回调。根据文档,如果没有发生网络错误,则为“成功”,否则为“失败”。有没有办法查看导致失败的底层网络错误
我尝试加载的url在我将其放入浏览器时运行良好,当我在收到“失败”消息后拍摄屏幕截图时,我会看到我在调用webpage.open之前所在的页面(因此我不能忽略失败)。我正在使用Phantom进行测试,因此理想情况下,我希望在webpage.open失败时(或者更好的是,它永远不会失败!)能
我有一段非常简单的代码,可以在post请求后从服务器端点读取响应。实际上,我正在将数据保存到数据库中,并等待响应,然后再进入下一步
casper.open('http://example.com/ajax.php, {
method: 'POST',
data: {
'title': '<title>',
'unique_id': '<unique_id>'
}
});
我尝试了这些片段,但无法得到响应
caspe
我正在为我的工作设计一些端到端测试,我已经通过chromedriver使用nightwatch.js启动并运行了它。然而,我们希望在我们的服务器上运行它,所以我希望能够使用phantomjs运行它。尽管测试使用chromedriver执行时没有发生意外,但Phantomjs会产生以下错误“Phantomjs无法使用css选择器定位项”
有什么想法吗?我在互联网上搜索了一个解决方案,但没有结果。我有时会在不同的浏览器中产生这种效果,而不仅仅是幻影。原因似乎是在对一个浏览器求值时没有加载元素(而对另
我正试图在苹果电脑(约塞米蒂)上运行CasperJS,拥有PhantomJS#2.0.0。当尝试运行CasperJS时,我收到以下消息:
"CasperJS needs PhantomJS v1.x
/usr/local/Cellar/casperjs/1.1-beta3/libexec/bin/bootstrap.js:91 in __die"
我怎样才能让它运行?有人使用过吗?目前没有比1.1-beta3更新的版本包含此检查
最简单的修复方法是打开bin/bootstrap.js文件
我被困在一个页面上,该页面返回4行类似的内容,然后挂断:
[debug] [phantom] opening url: https://xxx, HTTP GET
[debug] [phantom] Navigation requested: url=https://xxx, type=Other, willNavigate=true, isMainFrame=true
[info] [phantom] Step anonymous 3/6: done in 170ms.
[debug] [ph
标签: Phantomjs
karma-runnerkarma-jasminegulp-karma
好的,我知道以前有人问过这个问题,但是当我看到答案时,我仍然无法正确设置环境变量。我尝试使用export命令,但export未被识别为内部或外部命令。有人知道如何在不使用export命令的情况下正确设置PHANTOMJS_BIN的env变量吗?
我遇到的错误是无法启动PhantomJS
找不到二进制C:\users。。
请设置环境变量PHANTOMJS_BIN
插件吞咽业力错误
因果报应带着密码离开
我的节点版本是4.4.2似乎您正在使用Windows。可以设置环境变量,如图所示。之后别忘了重新
OSX v10.13.4/Elixir v1.6.5/OTP 19/Phoenix 1.3.2/Wallaby 0.19.2/PhantomJS 2.1
问题
下面的代码用于测试
execute_script(session, "localStorage.setItem('test', 'foo'); return localStorage.getItem('test');")
但是,如果我调用与Phoenix应用程序的app.js内部名为get_test()的函数中完全相同的方法
fun
1 2 3 4 5 6 ...
下一页 最后一页 共 15 页