我正在使用传单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=
在运行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
以下是脚本代码:
var page = require('webpage').create();
page.paperSize = {
format: 'A4',
orientation: "landscape"
};
page.open('http://www.google.com', function () {
var arr = page.evaluate(function () {
var pageWidth = document.body.clientWi
这实际上最初是由我运行SpookyJS时遇到的一个问题产生的,但成功地将其归结为底层CasperJS的一个问题(并且基于我被引导到的另一个stackoverflow问题,甚至可能是一个PhantomJS问题)
我们确定CasperJS命令失败的原因是:
casperjs C:\wwwroot\dra\node_modules\spooky\lib\bootstrap.js --spooky_lib=C:\wwwroot\dra\node_modules\spooky\lib\ --command
是否有任何方法可以始终如一地检测PhantomJS/CasperJS?我一直在处理大量使用它构建的恶意垃圾邮件,并且基本上能够基于某些行为来阻止它们,但我很好奇是否有可靠的方法来知道CasperJS是否正在使用,因为处理不断的适应变得有点烦人
我不相信使用CAPTCHA。这是一种负面的用户体验,ReCaptcha从未在我的MediaWiki安装中阻止垃圾邮件。由于我们的网站没有用户注册(匿名讨论板),我们需要为每一篇文章提供验证码条目。我们每天都会收到几千条合法的帖子,一个验证码就会看到这个数字
我尝试测试一个需要java插件的站点
使用此代码
casper.test.comment('-> Loading page');
casper.start('http://localhost:8080', function() {
casper.test.comment('-> Capture : homeURL loaded.png');
casper.capture('homeURL loaded.png');
});
casper.run(function(){
我在C:\xampp\htdocs\phantom中安装了PhantomJS,也在C:\xampp\htdocs\casper文件夹中安装了CasperJS
当我尝试使用phantomjs test.js命令在casper站点上运行这些示例代码时:
var casper=require('casper').create();
卡斯珀,开始http://google.fr/');
casper.thenEvaluate(功能(术语){
document.querySelector('input[n
我已经在本地开发人员机器上创建了一个集成测试。
使用Vaadinestbench,我创建了一个屏幕截图,应该用作参考屏幕截图。
在将参考截图上传到svn并使用jenkins验证构建之后,我得到了一个稍微不同的图像,因此测试失败
看起来字体不同,但我安装了相同的字体,网站指定了要使用的字体。
当然,我无法验证使用的字体是否完全相同
这是一张示例图片(请忽略紫色边框):
你知道如何使截图完全相同吗
多谢各位
托拜厄斯你为什么不能验证使用的是什么字体?右键单击对象,然后查看指定的字体以及是否在服务器
最近,我在服务器上使用CasperJS执行特定的自动化任务。
发现了一个大问题——有时CPU的使用率会超过30%。
我对它玩了很多,搜索了很多信息,甚至找到了两篇关于这个主题的帖子:
和
但不幸的是,这两种情况都没有相关的答案
重要-
为了减少CPU使用量,我不加载映像,而是使用同一个Casper实例执行所有任务。
但CPU使用率似乎仍然很高
也许有人有办法改进它?
或者至少我不应该在CasperJS中使用哪些函数?这可能与CasperJS无关,而是底层浏览器的“问题”:PhantomJS
我将PhantomJs作为maven模块添加到我的项目中,以测试Projet的状态,即使在修改之后也可以确保我没有做任何修改。
编译maven模块时,我的项目中的https链接有问题:
--- frontend-maven-plugin:0.0.26:grunt (grunt build) @ ess-cms-content ---
[INFO] Running 'grunt phantomcss --no-color' in /path/to/directory
[INFO] Running
为了让PhantomJ以不同的视口宽度创建页面的屏幕截图,我想动态地调整它。但是,这不起作用:
var system = require('system');
var page = require('webpage').create();
page.viewportSize = { width: 800, height: 600 };
page.open('http://example.com', function (status) {
page.render('medium.pn
我正在尝试使用casperjs自动导出媒体wiki xml,因为我们无法通过托管它的机器进行访问。问题是将xml下载为post请求,而响应是xml。目前我有以下内容(另一个票证在堆栈溢出时带来了此代码)
我要做的是:
casper.start();
casper.open('http://url_to_mediawiki', {
method: 'GET',
headers: {
'Content-Type': 'application/
有一些按钮共享casperjs无法分类的相同id或类,我想单击第二个或N选择器匹配,我可以使用:
document.querySelectorAll('[id="something"]').click();
但我必须使用以下基本格式:
casper.then(function (){
this.click(id="something");
});
或者。不管怎样,我是否可以让下面的陈述起作用
var clickthis= '[id="something"]';
document.qu
在JSON包中,我尝试了很多不同版本的karma phantomjs启动器,phantomjs,包括phantomjs预构建
当前包JSON
“依赖性”:{
“茉莉花芯”:“^2.5.2”,
“因果报应”:“^1.6.0”,
“因果报应茉莉”:“^1.1.0”,
“karma phantomjs启动器”:“^0.1.1”,
“幻影”:“^1.9.20”
}
在所有情况下,我都会得到“PhantomJS在60000毫秒内未捕获”的消息,它会尝试两次,然后放弃
我在Windows10上,从WebSt
我使用的是phantomjs,但是当我只打开一个指定的网页时,出现了以下错误
ReferenceError: Can't find variable: CollectGarbage
undefined:1
:0 in openUrl
phantomjs://platform/webpage.js:291 in open
phantomjs://code/memory_test.js:77
phantomjs://code/memory_test.js:94
但是我已经检查
我一直在尝试测试一个网页,看看一个功能是否有效。我尝试这样做的方式是将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
使用phantom JS 1.9.7,我在将网页打印为PDF时遇到问题
背景色和图像被剥离,而不是与页面完全匹配,如下所示:
感谢关于另一个问题的帖子,以下是答案:
body {
-webkit-print-color-adjust: exact;
}
您可以将CSS样式“-webkit print color adjust:exact;”添加到元素以强制打印背景色和/或图像
请参阅文档:
MDN上的这种情况很奇怪。值得注意的是添加!重要信息要正确显示,可能需要颜色和背景定义。谢天谢地,
我想了解在何种情况下,我应该或必须使用evaluate功能
我已经阅读了有关CasperJS的evaluate函数的API文档,但我不确定在哪种情况下应该使用该函数。DOM上下文是什么意思?有人能提供一个例子吗?CasperJS文档很好地描述了它的作用
重述一下:您传递了一个将在DOM上下文中执行的函数(您也可以称之为页面上下文)。您可以将一些原语作为参数传递到此函数,然后返回一个原语。请记住,传递给evaluate的函数必须是自包含的。它不能使用在此函数之外定义的变量或函数
CasperJS
我在windows机器上使用标准命令行工具,使用PhantomJS和修改的rasterize.js代码。我遇到的问题是当我传递url时,http://time.com/3274245/e-cigarettes-debate/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+时间/顶层+(时间:+顶层+故事)。我已经重定向了标准输出和标准错误,下面是我通过上面的url得到的结果
标准输出
Usage: rasterize.js UR
所以,到目前为止,我可以拍摄截图、创建图像并保存它们,但我需要将它们交错。。我怎么做?这真的很重要,因为我不想通过使用一些分离的php脚本创建交错的新jpg来降低jpg的质量
它应该简单到:
page.render('sites/teste/images/o'+i+'.jpg', {format: 'jpg', quality: '100', interlaced: '1'});
不,仅使用PhantomJS是不可能的,因为传递给实际渲染函数的唯一附加选项是图像质量()
您可以使用Phanto
我正在尝试使用NodeElement类的findLink()方法查找链接。我正在启动搜索的元素具有以下内部html:
<div class="arrow" style="left: 50%;"></div>
<h3 class="popover-title">really_confirm_forecast</h3>
<div class="popover-content text-center"><div class="btn-g
我的所有测试在Chrome或Firefox中运行时都没有问题,但当使用量角器时,我会收到以下错误消息:
/usr/local/lib/node_modules/dragrator/node_modules/selenium webdriver/lib/goog/async/nexttick.js:41
setTimeout(函数(){throw exception;},0);
^
等待量角器与页面同步时出错:“window.angular未定义。这可能是因为这是一个非角度页面,也可能是因为您的测
我无法使用phantomjs重定向页面
当我试图使用phantomjs将当前页面位置更改为同一网页的其他位置时,页面重定向到登录页面只要将当前对象值更改为新页面,而不是重定向
newPage=page.page[0]请为您的问题添加代码和URL。目前,您的问题还不清楚。我使用phantom js进行自动化,当我单击一个链接时,新页面将在另一个选项卡上打开。因此,我的问题是我无法重定向到该位置。如果没有--cookies文件,在登录时重定向可能会出错。选项。这很有趣!在答案中添加更多细节/一些代
--ignore ssl errors=true选项不适用于x86_64 GNU/Linux中的casperjs测试
相同的测试id在Windows中工作
我正在使用phantom js 1.9.7
有谁能帮我解决这个问题吗?您可以尝试使用特定的ssl version=TLSv1
casperjs --ssl-protocol=TLSv1 --ignore-ssl-errors=true my.js
我试图制作一个独立的测试用例来试验PhantomJSlocalStorage行为,但是在我的测试用例中,localStorage似乎不是持久的
以下是PhantomJS脚本:
var page = require('webpage').create();
page.open('http://localhost:8080/myapp/test.html', function() {
var x;
x = page.evaluate(function() {
return local
我看到Codeception在测试失败时会截图,如果测试也通过了,有没有办法让它截图
关于信息,我们使用的是phantomjs WebDriver。我找到的最好的文档是
其中有一个描述,允许您在测试的任何给定点截图。看起来它会将所有屏幕截图放在一个目录中,所以最好考虑一个好的命名约定
或者,我们现在让扩展工作起来,它自动执行每个测试步骤的截图过程,并将截图显示在有用的报告中。您可以在configurationacceptance.suite.yml中使用带有选项delete\u successf
我用夜视进行下一个测试:
var page = browser.page.certificats();
page
.navigate()
.section.search
.waitForElementNotPresent('@loader', 1000);
.waitForElementPresent('@option', 2000)
在firefox和chrome上,都可以正常工作。对于phantomJS,测试失败,因为它找不到@option。
@option元素是由一些JS
为什么我的函数在phantomjs中不会触发点击事件,但在chrome浏览器中却会触发?具体说来就是一个li元素
if(page.injectJs("./jquery-2.1.4.min.js") == false){
console.log("jquery Failed")
}
var sizePicked = page.evaluate(function(){
我写了一个脚本,点击一个可以下载mp3文件的链接。我面临的问题是,当脚本模拟单击该链接时,会弹出一个下载对话框,如下所示:
现在,我想将这个文件保存到我选择的某个路径,并使整个过程自动化。我不知道如何处理这个对话框。这是一个改编自的脚本,用于下载文件
在SlimerJS中,可以在onResourceReceived处理程序中使用response.body。然而,为了防止使用过多的内存,默认情况下它不会得到任何东西。您必须首先设置page.captureContent才能说出您想要的内容。将正则
我正在用PhantomJS 2.1.1打开一个本地html文件。我想使用查询字符串向页面传递一个值
这是我的密码:
var args = require('system').args;
args.forEach(function(arg, i)
{
console.log(i+'::'+arg);
});
var page = require('webpage').create();
page.viewportSize = { width: 1000, height: 800 };
下面的代码是下载网页它的工作很好,但我想保存我把代码写的文本文件老实说,我不知道我怎么可以这样做来保存文件
var url = 'http://stackoverflow.com';
var page = require('webpage').create();
page.open(url, function(status) {
if (status === 'success') {
var html = page.evaluate(function() {
我的测试套件使用Capybara进行特性测试,使用PhantomJS作为无头测试的驱动程序。我们已经开始为我们的CI套件开发Travis,但随着套件的运行,我们仍然会遇到失败(它在本地运行得非常好)。经过进一步的检查,我意识到每次运行的第一个功能测试总是失败的,无论顺序如何(我们的测试是以随机顺序执行的)。失败后,会出现以下错误:
Capybara::Poltergeist::StatusFailError:
Request to 'http://127.0.0.1:52455/#/log
我有一个网站,它使用Zurb的Yeti Launch应用程序来编译我的网站并制作一个dist版本。但是,Yeti在构建站点时失败,因为phantomjs在编译外部javascript文件(addthis插件)时返回(正确的)错误。所以我的问题是,我怎么能告诉phantom跳过几行代码呢?很像HTML中的a
让幽灵生气的那句话:
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubi
使用phantomjs中的示例非常有效
但是,如果url需要发出Ajax请求以加载其数据,会发生什么情况?我是否可以触发自定义事件,以便只在那时生成pdf?
(我不想猜测请求将花费多少时间并设置超时)此问题的常见解决方案是等待AJAX请求完成后页面上出现的元素
包括来自的waitFor函数,并等待作为参数传递给waitFor的第一个函数返回true,然后它将运行作为第二个参数传递的函数
page.open("https://example.com/ajaxified/", function (
1 2 3 4 5 6 ...
下一页 最后一页 共 10 页