jjzjj

phantomjs

全部标签

javascript - CasperJS/PhantomJS ES6 Promise Polyfill

我目前正在尝试使用PhantomJS和CasperJS来制作端到端测试。我遇到的是PhantomJS缺乏promise的情况。目前我们的项目实现了它们。该应用程序仅在原生支持promises的GoogleChrome中使用。在运行我的测试时我收到错误:错误:ReferenceError:找不到变量:Promise这似乎是因为PhantomJS中当前版本的Webkit不支持promise。我意识到SlimerJS确实通过Gecko获得了这种支持,但是我们的应用程序在Chrome中运行,因此我希望在Webkit中进行测试。我一直在努力解决的问题是将ES6promisepolyfill注入(

javascript - 具有旋转代理的 Phantomjs/Casperjs?

我有一个简单的目标:使用phantom.js(开箱即用)或casper.js(简单易用)加载网页,但使用代理并从列表中轮换它,如果当前列表是坏的(即网页加载失败或类似的事情)。我知道casper.js有--proxy参数,但它要求用户只指定一个代理并在运行时使用它。问题#1是:如何以编程方式动态旋转代理?我做了一些研究,发现了这个node-requester但它没有与casper.js集成。我试图只提取出code中的代理功能。但简而言之并没有真正理解它是如何工作的(我猜我没那么聪明)。那么问题#2:是否有一些简单的代理轮换实现可以与phantom.js或casper.js一起使用?虽然

javascript - 将 javascript 注入(inject) zombie.js

你好,我想知道Nodejs和zombiejs是否有能力将javascript文件注入(inject)headless浏览器,类似于你可以用phantomjs做的事情。例如在phantomjs中你会这样做:page.injectJs("amino/TVI.js")我使用过phantomjs,它确实做了我想要它做的事情,但是由于使用phantomjs需要大量内存,我正在测试其他选项。 最佳答案 您可以将脚本标签附加到文档对象中,因为它支持zombie中的DOMAPI。下面的例子展示了如何将jquery插入zombie主页:varBrow

javascript - Phantom.js 登录 instagram 页面

我正在尝试使用phantom.js登录instagram网站。我的第一个方法是:document.querySelector("input[name='username']").value="Username";document.querySelector("input[name='password']").value="Pass";但是这段代码不会改变DOM。我的第二种方法:document.getElementsByClassName("_kp5f7_qy55y")[0].setAttribute("value","Username");document.getElementsBy

javascript - 确认 phantom.js 中的警报窗口

我有这个功能可以找到按钮并点击它,但是在出现警告之后我需要使用phantom.js来确认function(){page.evaluate(function(){$('.item-listclicked').first().find($('.comment-delete')).find('a').click();})}我可以模拟无需立即单击即可调用警报的功能吗?或者使用函数waitFor来等待这个警报?(不太可能,waitFor只等待DOM对象,我认为是这样) 最佳答案 我找不到其他帮助我回答这个问题的stackoverflow答案,

javascript - 在 CasperJS 中为请求设置 cookie

我想使用CapserJS加载一个页面,但如何发送从该页面的chrome的http请求header导出的cookie?如:"SUB=_2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo;SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-mFPo;" 最佳答案 有多种方法,但最简单的方法是使用page.addCookie或phantom.addCookiePhantomJ

javascript - 如何在 PhantomJS 中滚动以触发延迟加载?

我在使用PhantomJS触发滚动延迟加载时遇到问题。以前的答案(甚至接受的答案)都不适合我。大多数是针对旧的PhantomJS版本。其他问题-与我的问题几乎相同或相似,但答案无效或无效:notabletolazyloadinphantomjsHowtoscrolldownwithPhantomjstoloaddynamiccontenthttps://github.com/ariya/phantomjs/issues/11512他们都试图利用window.document.body.scrollTop=document.body.scrollHeight和page.evaluate(

javascript - 如何使用 PhantomJS 测试网页是否返回 404/500?

我是PhantomJS和Javascript的新手,我正在编写一个测试加载时间的脚本,我想让它检测在测试它时是否遇到错误404/500,并在控制台日志。代码是这样的:varpage=require('webpage').create(),t,address;t=Date.now();vartestArray=['someURL'];functionloadTest(testURL){address=testURL;page.open(address,function(status){if(status!=='success'){console.log('FAILtoloadtheadd

javascript - 如何调试 phantomJs 中的页面加载错误

有没有办法调试phantomjs的page.open方法?我的应用程序加载了一些本地保存的文件,但不幸的是,打开页面时唯一可以获得的信息是加载成功与否。更有趣的是,当在浏览器中打开时,同一页面会正确加载。这是我的代码:varsystem=require('system'),page=require('webpage').create();varopenPage=function(){varurl='http:\\localhost:53794/file.html';page.open(url,function(status){if(status!=='success'){console

javascript - PhantomJS 使用太多线程

我编写了一个PhantomJS应用程序来抓取我构建的网站并检查要包含的JavaScript文件。JavaScript类似于Google,其中一些内联代码加载到另一个JS文件中。该应用程序会寻找其他JS文件,这就是我使用Phantom的原因。预期结果是什么?控制台输出应该读取大量URL,然后判断脚本是否已加载。到底发生了什么?控制台输出将按预期读取大约50个请求,然后开始吐出此错误:2013-02-21T10:01:23[FATAL]QEventDispatcherUNIXPrivate():CannotcontinuewithoutathreadpipeQEventDispatcher