是否有任何方法可以通过phantomjs请求资源并能够访问响应的主体?这是phantomjs目前的一个大问题。公开(截至撰写之时)票证位于,但目前尚无可靠的解决方案。这适用于收集您的请求数据和响应数据,因此您无法收集您提交的帖子数据,然后使用类似CasperJS下载的方案重新发送。更新:关于“获取并使用所有其他资源(如图像、CSS、字体等)做一些事情”的其他可能含义,我最近在博客中写道。我相信从1.9.1开始在PhantomJS中实现这一点的唯一方法是应用补丁并重新编译
也许我误解了你所说的“
我使用的是phantomjs版本1.9.7,我相信它应该支持web字体。我已经插入了谷歌网页字体的字体,但当我自动截屏时,它只是显示我的备用字体。webfont在我的所有浏览器中都显示良好。有什么解决办法吗?我相信你的想法是错误的:-)
Phantom的1.9.x系列仍然基于旧的WebKit代码,人们一直在报告web字体问题
好消息是幻影2.0的技术预览显然即将发布;目的是成为关注状态的最佳场所。而且,从记忆中,有人报告说网络字体使用成功(但我可能错了,因为快速搜索邮件列表档案并没有发现一条明确
标签: Phantomjs
iptablesghostdrivernetwork-interfaceremotewebdriver
我目前有多个网络别名(eth0、eht0:1、eth0:2),每个都有自己的私有ip,而私有ip有自己的公共ip。当将远程web驱动程序与phantomjs(ghostdriver)一起使用时,它总是选择本地主机(请参见BUG)作为客户端参数--webdriver=ip:port,因此我不能依赖phantomjs来选择正确的接口
我目前的印象是,我将不得不使用IPTABLES。我想在连接到phantomjs(ghostdriver)驱动程序时,使用远程web驱动程序将java程序的任何实例路由到
我很难在服务器上安装phantomjs。我在任何地方都没有找到很好的方向,我找到的最好的方向在我试图完成它们时会给我错误。到目前为止,我正在遵循这些步骤并得到这些错误
已成功使用putty以root身份登录并运行以下命令
Line 1: yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++
No errors
Line 2: wget https://bitbucket.org/ariya/phan
使用PhantomJS和bash,我正在开发一个小的反恶意软件,它读取一个网页,抓取所有向浏览器交付资产的域,然后打印每个服务器的原产国。它工作良好,除了一个网站有一个。。。嗯…'每5秒调用一个外部服务器的“次优”javascript。PhantomJS只是一遍又一遍地加载资源,page.open()永远不会完成,page.onLoadFinished()永远不会被调用
有办法解决这个问题吗?我可以在page.load()上设置时间限制吗?我想,作为一种解决办法,我可以对Linux进程设置一个时
我在向我们的网站docker容器添加PhantomJS时遇到了一些问题
我测试和生产了两个容器,但不知道如何将其添加到每个容器中
这些容器是用Dokku制造的,并且已经在运行。这是有点不同,所以我们无法拉出带有图像的新容器或编辑其DockerFile
此外,我们还使用了dokkurun在它们中使用了类似于wget的命令,但这不是一个交互式shell。此外,当使用ls进行检查时,使用wget下载的文件似乎不在容器中,即使下载完成。我将向Dockerfile添加如下内容:
# PhantomJS
E
当在Phantomjs(v1.9.8)中使用SSL打开URL时,我面临一个问题:资源请求错误“连接关闭”
操作系统信息:SUSE Linux企业服务器12
命令行如下所示:
phantomjs --ignore-ssl-errors=true --ssl-protocol=any --debug=true rasterize.js https://192.168.70.57:8072/upgrade.html test.png
详细日志:
2015-03-10T17:59:45 [DEBUG]
我试图将PhantomJS与Babel从ES6编译到ES5的脚本一起使用
对于某些功能,Babel在文件末尾添加了一些帮助函数(如\u asyncToGenerator和\u typeof)来评估代码
但是在Phantom中,有一个函数evaluate(function(){…}),它是在浏览器上下文中执行的,因此它不能访问babel放入的那些助手函数
例如,如果我有代码:
var page = require('webpage').create();
page.open(url, functi
我使用phantomjs从单页应用程序加载一些页面
Phantom启动页面上的所有脚本,但是无法判断页面何时准备好进行检查。由于某些数据来自外部源,因此无法判断页面上的所有脚本何时完成
关于这方面的任何想法,我尝试等待,但这不是我的场景的解决方案,因为我不知道我在寻找哪些元素(外部源可以更改它发送的数据)您可以使用或检查您可以观察到的dom是否有任何更改,例如progressbar,加载所有内容时添加/删除的类。如何确定(在普通浏览器中)页面已加载?一个想法是,您可以每秒检查整个DOM,直到有一
我看到CasperJS有一个“download”函数和一个“on resource received”回调,但我在回调中没有看到资源的内容,我不想将资源下载到文件系统
我想抓取资源的内容,以便在脚本中使用它。CasperJS或PhantomJS是否可以这样做?您可以使用Casper.debugHTML()打印HTML资源的内容:
var casper = require('casper').create();
casper.start('http://google.com/', functio
有一个输入字段绑定到keydown/keyup/keypress/blur事件,
并希望在此输入字段中填充一些值
和casperjs在一起
<input type="text" class="some-input" id="somekey"
onblur="somefunc_1();"
onkeydown="if(event.keyCode==13) somefunc_2();"
onkeyup="somefunc_3();" onkeypress="return somefunc_
我有一个名为util的模块,其中包含getMutedColor等方法getMutedColor依赖于同一模块中另一个名为rand
page.includeJs('https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.10/d3.min.js', function() {
var util = require('./util');
var svg = page.evaluate(pageContext.pageExec, data, meta,
我必须遍历一个类的所有div元素,并获取这些元素的内部html。如何使用phantomjs实现这一点?尝试使用、评估和文档。queryselectorAllphantomjs是javascript,因此您可以使用普通的javascript方法。您还可以注入jquery,这将使它变得更容易。
我想知道是否有更好的方法用phantomJS测试mocha测试,而不是每次测试都有一个html文件。那么有没有grunt插件或者类似的东西可以让我在单个JavaScript文件中编写测试,并在运行测试时连接这些文件?你看过grunt mocha吗?另外,为什么每次测试都必须有一个HTML文件?可以在同一HTML文件中包含多个套件
<script src="spec1.js"></script>
<script src="spec2.js"></scrip
想象一下这样的脚本
system = require "system"
system.stdout.write "What's your name? "
name = system.stdin.readLine()
system.stdout.writeLine "Hello, #{name}"
通过
casperjs name.coffee
我希望能够在用于运行脚本的终端中与用户交互,但我陷入了readLine()调用。根据文档,phantomJS可以与标准输入进行通信。请参见此示例
当我尝试对phantom.js使用以下JSON配置时,remoteDebuggerPort参数被忽略:
{
"localToRemoteUrlAccessEnabled": true,
"webSecurityEnabled": false,
"remoteDebuggerPort": 9001,
"remoteDebuggerAutorun": "yes"
}
(其他每个参数都正常)
当我这样称呼它时:
phantomjs.exe--远程调试器端口=9001。
在中,我可以了解如何使用http打开页面
如何使用网页模块从文件系统打开url
我试图省略http://,并在url中添加。/some_dir/foo.html,但似乎失败了
我试过这个:
var page = require('webpage').create();
var fs = require('fs');
fs.changeWorkingDirectory('../foo/bar');
page.open('file://index.html', function(status)
有了新的FantomJS karma启动器,我每次运行测试时都会遇到一个恼人的“等待15秒”
与此问题远程相关的唯一页面如下:
我已经交换了node和karma版本几次,试图让它正常工作,但没有成功。有人遇到过这个问题吗
以下是我使用的工具组合:
我不建议使用phantomJS。人们报告说,它的功能可能不同于Chrome或其他浏览器。此外,您还需要下载它,这可能会在出现错误时无法恢复
使用Chrome和任何其他您想要支持的真实浏览器更健壮、更可靠。事实上,在真实浏览器中运行测试是Karma的主要
我试图通过cron启动一些phantomjs脚本,但由于它正在等待phantom.exit,但我在第一个脚本中保持页面打开一段时间,下一个脚本将不会启动。谁知道这个问题的解决方案呢?在linux中,您可以通过在命令末尾添加&来运行后台进程
我使用url“x”找到下一页按钮并执行。甚至在上面单击()。.click()事件工作正常,我没有发现任何错误。执行.click()时,如何使casperjs重定向到下一页。我曾想过使用casper.open(),但找不到将其与.click()结合使用的方法
单击链接后,CasperJS将打开下一页,无需额外调用open()。您需要使用then()或waitFor*()函数来执行下一页的下一步
var casper = require('casper').create();
casper.star
我在入门页面中介绍了注入jQuery的示例,效果很好。我在同一个目录中有一个jQuery的本地副本,并执行如下操作
if(page.injectJs('jquery.min.js')) {
page.evaluate(function(){
//Use jQuery or $
}
}
if(page.injectJs('myScript.js')) {
console.log('myScript injected... I think');
page.evaluate
我尝试在tumblr中自动登录,运行建议的脚本,但phantomjs只显示失败的尝试:
[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: https://tumblr.com/login, HTTP GET
[debug] [phantom] Navigation requested: url=https://tumblr.com/login, t
我在buildbot和phantomjs的帮助下实现codeception
这一切都很好,buildbot在提交时启动codeception,我让phantomjs在后台运行,接受来自codeception和de WebDriver的连接
然而,问题是phantomjs正在保存cookie,因此我的第一个测试(登录)总是失败,因为用户已经登录
如何在每次测试运行后重置phantomjs的cookies
我尝试重新启动phantomjs,这解决了问题,但我不知道如何使用buildbot实现这一点。
出于不值得在此讨论的原因,我在web.config中模拟了一个管理员用户,如下所示
<identity impersonate="true" userName="DOMAIN\USERNAME" password="PASSWORD" />
我的看法是:
@ViewBag.Test
这是我的phantomJs文件:
system = require('system');
system.stdout.write('asdf');
phantom.exit();
如果我在web.c
我正在尝试使用CasperJS连接到SoundCloud。有趣的是,一旦您登录并稍后重新运行登录功能,以前的登录仍处于活动状态。在继续之前,以下是代码:
casper.thenOpen('https://soundcloud.com/', function() {
casper.click('.header__login');
popup = /soundcloud\.com\/connect/;
casper.waitForPopup(popup, function() {
我尝试在requirejs中使用grunt mocha,但出现以下错误:
Warning: PhantomJS timed out, possibly due to a missing Mocha run() call. Use --force to continue.
如果我尝试使用mochajs.org上最简单的示例,它可以工作,但由于某些原因,requirejs不起作用
这是我的档案
test/browser/runner.html:
<!DOCTYPE html>
<
我正在运行PHP PhantomJs,我正在寻找网页的纯文本版本。
现在我正在使用:
echo$response->getContent();
这带来了整个html源代码的渲染页面,我不需要。我需要从页面获取呈现的纯文本
是否可以加载空白页面并在该页面上执行一些javascript?如果是,怎么做?示例将不胜感激。PhantomJS需要一个DOM,它不会出现在一个空文件中。您至少需要为页面创建此结构,以便在页面上执行JavaScript:
<html>
<head>
<!-- JavaScript goes here !-->
</head>
<body>
</body>
</html&g
为了节省带宽,我们为out phantomjs实例启用了磁盘缓存。我们需要能够做的是跳过对特定文件使用缓存(可以基于URL)
换句话说,我们希望缓存机制处于活动状态,但我们希望能够检查每个请求,并决定是否要跳过缓存并基于URL进行直接调用
例如,当我们收到资源时,是否可以删除所有缓存头
感谢任何建议。根据您的需求规模,您可以考虑编写自定义代理服务器,以您喜欢的方式处理响应头。作为奖励,您可以在代理上而不是在PhantomJS上缓存,从而为多个PhantomJS实例启用共享缓存。我们需要能够通过p
我在测试脚本中使用phantomJS浏览器,在动画过程中使用requestAnimationFrame(rAF)。当我在phantomJS中启动测试脚本时,时间戳在rAF中得到了错误的值。但它在其他浏览器中运行良好
请参考以下各种时间戳值
幻影JS:1486032943535.4844
铬:3918.819997879565
firefox:2997.8451083288005
如何在PhantomJS中修复此问题?您是否尝试过最新的PhantomJS 2.5beta?@Vaviloff:2.5
我正在使用html转换为pdf。一切都正常,但在添加标记时,它并没有显示我想要的PDF格式的图像。比如说,
string image = "~/images/test.png";
string htmlToConvert = string.Format(@"
<div>
<table>
<tr>
<td>
<img srcset='{0}'>
我试图打开一系列URL来呈现输出,然后使用PhantomJS合并成一个PDF,但是我找不到任何关于如何实现这一点的文档。我只是尝试和错误,但没有取得任何进展-希望有人知道如何做到这一点
我还没有完全了解PhantomJS,所以如果您知道更好的命令行、节点或JAVA工具,我会洗耳恭听(在本例中是眼睛)
下面是我用来呈现单个页面的代码。我尝试复制打开/渲染,但它总是覆盖PDF而不是附加到PDF
var page = require('webpage').create(),
system =
我使用PhantomJS调用网页,如下所示:
page.open('http://example.com', function (s) {
console.log(page.content);
phantom.exit();
});
我在Drupal Simpletests的上下文中使用它,它要求我设置一个特殊的USERAGENT,以便使用测试数据库而不是真实的数据库。我想通过特定的用户代理获取网页。例如,在使用Curl的PHP中,在进行Curl调用之前,我可以使用CURLOPT_US
当我使用这个示例时,我发现同一页面上的一系列hashbang链接(动态创建不同的内容)只在第一次生成内容。对于所有其他结果,使用第一个链接中的this.getHTML()
例如,当我加载http://test.localhost/它会发现:
http://test.localhost/#!/page1
http://test.localhost/#!/page2
http://test.localhost/#!/page3
每次迭代都使用#的内容/第1页。当我以相反的顺序添加列表时,每次迭代都
CasperJS有一个问题。在我想填满一页文字之前,一切都正常。编写所有代码:
phantom.casperPath = 'path\\to\\casperjs';
phantom.injectJs(phantom.casperPath + '\\bin\\bootstrap.js');
var url = "someurl";
var someText = "text";
var casper = require('casper').create({
clientScripts:
我使用的是标准PhantomJS库中稍微修改过的rasterize.js。对于某些页面,它不会创建图像。即使将任何错误处理程序附加到我可以找到的页面,我也不会得到任何输出,就好像创建了图像一样
我想知道的是,是否有办法从“page.render()”函数本身获取某种错误消息或输出,还是我一直在摆弄有问题的页面?我不相信有,但如果元素丢失,则不会生成任何图像。你查过了吗?也许你需要等待一段时间,直到它被填充。我已经尝试增加超时时间,但没有效果。另外,我确信尸体标签是存在的。这是一个非常复杂的动态生
我想使用facebook共享对话框
和casperjs在一起
我成功地从第一个下拉列表中选择了post模式“group”,但当我尝试填充group name输入时失败了(我认为它使用ajax下拉列表)
如果运气不好,这是我的密码
var casper = require('casper').create({
pageSettings: {
loadImages: false,
loadPlugins: true,
我正在使用传单API构建一个映射应用程序
我想使用phantomjs生成地图的静态截图
例如,尝试呈现此页面时:
使用
phantomjs示例/rasterize.js test.png
导致图像缺少SVG覆盖。我曾在Windows7和FedoraCore15下使用预构建的二进制文件进行过尝试。此外,我在FedoraCore15下从源代码编译了它。两个平台上的所有构建都产生了相同的行为
是否有人使用phantomjs成功地将传单地图渲染到PNG
谢谢。我刚刚遇到了同样的问题,增加超时(至少到5
由于一个模糊的原因(WebKit或PhantomJs中的Bug),console.log在page.evaluate中不起作用
您应该更改代码以使用console.info、console.warn或console.error
var page = require("webpage").create(),
loginPage = "https://subscriber.hoovers.com/H/login/login.html";
page.onConsoleMessage =
我对CasperJS(版本1.1.0-beta3)和PhantomJS(版本1.9.2)有问题。我在我的工作机器上写了一个脚本,它运行得很好。不过,我希望这个脚本在另一台机器(测试机器)上运行,所以我在服务器上创建了一个SVN repo,并从测试机器将一个网络驱动器映射到它。在repo中,我有我的脚本、提取的CasperJS zip的内容和phantomjs.exe。我还更新了测试机器上的系统路径变量
我在本地机器上映射了相同的网络驱动器,在那里它以前运行良好。它在那里仍然运行良好,即使是从网络
我在mocha phantomjs的每个教程中都会看到一个测试工具html文件和一个单独的javascript文件
这是每次测试的正确方法吗?我想为我的网站中的每个页面创建一个单独的测试,但为每个测试用例复制一个html文件似乎有些过分/疯狂
Granged,这是我第一次尝试使用mocha phantomjs,但是,为每个测试用例创建一个html文件和一个js似乎真的很奇怪
做这类事情的标准是什么?我已经在谷歌上搜索了大约一个小时,找不到任何好的例子。我知道这看起来很奇怪,但是。。。对
您需要/
我最近将操作系统从El Capitan升级到Sierra。现在我无法运行JS单元测试套件,它在控制台中给出了以下错误
[exec] INFO [framework.browserify]: bundle built
[exec] INFO [karma]: Karma v0.12.35 server started at http://localhost:9876/
[exec] INFO [launcher]: Starting browser PhantomJS
[exec] ERR
我们需要一些帮助来找出我们在测试中遗漏了什么。我们正在尝试运行headless phantomjs测试,并得到错误:
nil:NilClass的未定义方法get'
你是说?得到
拿到钥匙
宝石(命名者)
features/welcome\u登录。feature:4:在中,如果我导航到“”
env.rb=
我想用CasperJS从一个流行站点删除一些数据。我已经用代理池成功地获取了一些数据。现在我担心的是HTTP请求头,它与我的HTTP请求一起出现。
我知道有很多关于我和我的服务器的信息,所以是否存在删除或修改传出HTTP头的方法。您可以使用headers属性向casperjs添加自定义头。您应该能够更改您关心的标题
例如:
您可以使用headers属性向casperjs添加自定义标题。您应该能够更改您关心的标题
例如:
任何代理都可以这样做,例如squid任何代理都可以这样做,例如squid
c
我今天试过GhostDriver和Phantomjs。
当我使用GhostDriver时,它工作得很好。
这样开始
phantomjs--webdriver=8910
然后
我的selenium测试用例可以通过
然后我试着用硒酸钠,
因此,我将selenium单机服务器作为一个集线器启动:
D:\_Try\selenium>java -jar selenium-server-standalone-2.31.0.jar -role hub
2013-3-20 14:13:49 org.ope
我正在尝试使用CasperJS从推特上获取一些信息。我被无限卷轴困住了。问题是,即使使用jquery向下滚动页面,也没有任何效果。无论是滚动还是触发窗口上的确切事件(smth,如底部),似乎都没有帮助。
有趣的事情-当通过FF&Chrome中的JS控制台注入JS代码时,所有这些尝试都会起作用。
下面是示例代码:
casper.thenEvaluate(function(){
$(window).trigger('uiNearTheBottom');
});
或
CasperJs基于Ph
我有一个HTML页面,其中包含使用以下CSS旋转的几段文本:
.rotate {
transform: rotate(90deg);
transform-origin: 50% 50%;
}
当我直接在浏览器中拉出页面时,这将按预期呈现。当我通过PhantomJS呈现页面时,它似乎忽略了旋转
我升级到Phantom 2.0.0,但仍然是相同的问题
有什么办法可以让它工作吗?我在一个节点应用程序中用PhantomJS 1.9.18对它进行了测试
使用-webkit transfo
在将casperJS更新到最新版本后,我遇到了一个问题
this.clickLabel('Add a link...', 'span');
this.sendKeys('input[id="newLinkSourceUrl"]', "http://google.com", {keepFocus: true, reset: true});
this.clickLabel('Shrink', 'span');
this.wait(30000, function() {
我想知道在http1上通信时,浏览器如何打开6个并行tcp连接。所以我试着分析幻影。在分析源代码时,我想知道一些事情
1) webserver.cpp的角色是什么?
2) 关于多个并行tcp连接的源代码在哪里?是在mongoose.c中的吗,它在“src/mongoose/”中
谢谢。哪个浏览器?你在说什么?这个问题与这些标签有什么关系?@NeilLunn我想知道在Web浏览器上实现多个http连接的原理。
我想用PhantomJS下载一些图片,但我有一个小问题。
我的代码是:
page.open( url, function ( status ) {
page.render( "test.jpg" );
phantom.exit();
});
问题是URL重定向到站点的主页。
如何禁用URL重定向并保存图像?
URL类似于:。
我想从这个网站下载这个(和其他)图片,但是重定向对我来说是不可能保存图片的
我在网上没有找到任何可以解决我问题的方法。
有人能帮我吗?可能是@Artjom
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 15 页