有没有办法调试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
我编写了一个PhantomJS应用程序来抓取我构建的网站并检查要包含的JavaScript文件。JavaScript类似于Google,其中一些内联代码加载到另一个JS文件中。该应用程序会寻找其他JS文件,这就是我使用Phantom的原因。预期结果是什么?控制台输出应该读取大量URL,然后判断脚本是否已加载。到底发生了什么?控制台输出将按预期读取大约50个请求,然后开始吐出此错误:2013-02-21T10:01:23[FATAL]QEventDispatcherUNIXPrivate():CannotcontinuewithoutathreadpipeQEventDispatcher
我无法将参数传递给传递给page.evaluate的函数。我正在尝试提交表单。data1="Textsample";page.evaluate(function(data1){varform=document.getElementById("MyForm");form.data.value=data1;form.submit();});但是当我截取页面的屏幕截图时,数据字段充满了“未定义”。我做错了什么以及如何解决? 最佳答案 您需要将其作为page.evaluate中的第二个参数传递。page.evaluate(function(
我想要一个CasperJS脚本来启动一个页面,然后无限期地保持打开状态,这样我就可以随时通过HTTP向它发送命令。问题是整个CasperJS进程在casper.run调用完成后立即关闭。我尝试通过在一个步骤中使用长时间的wait调用来解决这个问题,但是随后Web服务器无法对Casper执行任何操作,因为Casper正忙于等待wait调用完成。varport=6100;varcasper=require("casper").create();casper.start("http://google.com");casper.then(function(){//IfIincludethisw
我们正在构建服务器上结合使用Karma和PhantomJS来运行我们的Jasmine单元测试。在Chrome上本地运行测试工作正常,那里没有发生错误(这是一个不同的问题)。这是正在发生的事情:在执行的某一时刻,测试遇到“未定义”错误并简单地停止:PhantomJS1.9.7(MacOSX)ERRORTypeError:'undefined'isnotanobject(evaluating'dropScope.resize')at/Users/nwinkler/workspaces/.../foo.js:250PhantomJS1.9.7(MacOSX):Executed654of122
我正在尝试使用phantomjs进行一些测试...基本上我想:在我的网络服务器上打开一个页面一旦页面初始化(所有页面js已加载)从phantomjs调用页面js并测试结果退出phantomjs不过phantomjs似乎很难注意到页面何时加载。我可以使用phantomjs在窗口或其他东西上设置一个“测试”变量,以便页面js可以检查它,然后在完成后调用回调。问题是回调只能是页面回调,所以它不能做页面不能做的事情。这对苔丝来说可能没问题,但最后一步是不可能的。我想到了这个:page.onConsoleMessage=function(msg){if(msg=="__quit__"){phan
是否可以为phantomjs的system.stdin事件设置事件监听?示例,其中phantomjs可以从stdin读取但在等待输入时停止一切:varsystem=require('system');system.stdout.writeLine('waitingforuserinput...');varinput=system.stdin.readLine();//anythingdownherewon'texecuteuntilinputhasbeenreceived理想的解决方案就像nodejs的process.stdin.on()phantomjs似乎没有提供任何方法来做到这一
我正在尝试获取特定网页的原始来源。该页面在加载后立即执行一些修改DOM的脚本。我想在任何脚本或用户更改文档中的任何对象之前获取源代码。使用Chrome或Firefox(可能还有大多数浏览器),我可以查看DOM(调试实用程序F12)或查看原始源代码(右键单击,查看源代码)。后者是我想要完成的。是否可以用phantomjs/casperjs做到这一点?在进入页面之前,我必须登录。这在casperjs上运行良好。如果我浏览到该页面并呈现结果,我就知道我在正确的页面上。casper.thenOpen('http://'+customUrl,function(response){this.pag
我正在从PhantomJS迁移脚本至CasperJS,并且想知道Casper是否提供了对它在幕后使用的Phantom对象的任何引用。Phantom提供了一些Casper没有的功能(例如injectJs)。为了完整起见,这里是所有Phantom'sobjects:webpagesystemfswebserverchild_process通过查看casper对象的属性,我确实找到了对webpage对象的引用(casper.page),所以我特别用例被处理。我想无论如何我都会发布这个问题,以防其他人需要访问系统、fs、网络服务器或child_process。 最佳
这个问题在这里已经有了答案:HowcanItakeascreenshotwithSeleniumWebDriver?(48个回答)关闭8年前。我已将PhantomJS和Selenium添加到我的C#控制台应用程序中,我想在浏览器到达特定元素时对其进行屏幕截图。原因是因为某些原因,当我使用ChromeDriver时它工作正常,但是当我使用PhantomJS时它在一些元素上失败。我想我需要介绍一下如何使用phantomjs在C#中截取屏幕截图。我在互联网上四处张望,似乎每个人都在使用java脚本来执行此操作。我遇到的问题是我不知道如何将java脚本集成到我的C#应用程序中,然后将其与pha