- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个代码示例如下:
var page = require('webpage').create();
page.open('https://www.youtube.com', function(s) {
console.log(s);
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
var t = page.evaluate(function() {
console.log('here');
phantom.exit(); // case 1: inside page.evaluate()
});
});
});
-> 这种情况下phantom.exit()被放到了page.evaluate()里面,出现错误:"ReferenceError: Can't find variable: phantom"
var page = require('webpage').create();
page.open('https://www.youtube.com', function(s) {
console.log(s);
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
var t = page.evaluate(function() {
console.log('here');
});
phantom.exit(); // case 2: outside page.evaluate()
});
});
-> 情况 2:phantom.exit() 放在 page.evaluate() 之外。没有错误,但没有打印出'here'。
=> 以上两种方式都不能打印出'here'。有什么有效的方法可以无误地打印“这里”吗?
最佳答案
您不能在页面内部使用任何 phantom
方法,就像页面本身不能使用它们一样。
phantom
对象是运行时提供给它最初启动的脚本的特殊宿主对象。加载页面后,该页面将在其自己的上下文中使用常用的浏览器变量运行,其中不包括 phantom
。
您需要等待 page.evaluate
回调幻影脚本,然后从那里调用 exit
。魅影 docs show this exact case ,在 evaluate
返回后调用 exit
。它们似乎没有涵盖 evaluate
是否阻塞,但示例表明它可能是。
要从页面捕获日志消息,您需要订阅其 onConsoleMessage
event . Phantom 控制台只从它正在运行的脚本中获取消息,而不是它可能加载的任何页面。您需要做的就是将页面消息路由到幻影控制台:
page.onConsoleMessage = function(msg) {
console.log('PAGE: ' + msg);
};
关于javascript - 无法将 phantom.exit() 放入 page.evaluate() 中的 phantomjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570915/
如果我使用 phantom.js 进行网页抓取,单击一些按钮和链接,那么终止程序最方便的方法是什么? http://phantomjs.org/api/webpage/method/close.htm
我正在尝试使用 phantom.js 编写一个网络蜘蛛。但是我收到了很多错误消息,我不知道为什么。我的代码如下所示: 使用 Nightmare.js: var Nightmare = require(
刚刚学习使用phantomjs,根据网上帖子自己手动改了一个延时截图功能,发现延时功能就是不能执行,最后一点点排查出了问题。 看代码: ?
所以我有一个带有 nextjs 的 React 应用程序,当用户使用 Phantom 钱包扩展程序并切换帐户时,我需要获取一个事件触发器。我在他们的文档中找不到任何相关内容:https://docs.
API 文档说 This reference type differs from the others in that it isn't meant to be used to access the
我正在尝试使用Phantom JS登录一个站点,以便可以保持供应商价格的最高水平。 输入了用户名和密码,但没有按下登录按钮。 如果登录按钮是而不是,则.click()应该可以工作,但是我找不到按的方法
我正在运行 AngularJS 的设置AJAX 应用程序,并使用 PhantomJS和 Angular-seo库,以便为爬虫提供实际标记而不是 JS 代码。 不幸的是,我收到一条错误消息: 此附件的隐
我有一个 Phantom JS 脚本,用于监视一些外部页面。基本上它只是从这个页面获取状态,如下所示( typescript 代码): const status: string = await pag
我设法使 SVN 存储库陷入不良状态。我已经移动了一个目录,但现在无法将其提交到新位置。 就svn status而言,目录未知(目录名称为type)。 $ svn status? type
我在命令行中输入以下命令:tf工作区,它告诉我计算机上没有工作区。然后我在服务器上尝试相同的命令,什么也没有。因此,我进入 Visual Studio 2010 并创建一个新工作区,并尝试将 TFS
这个信息图有更多问题。好像有幻影出现在轮播的末尾。有谁知道这是怎么出现的? http://weaver-wp.weavertest.com/radiation-infographic/ 干杯,戴夫 最
我有一个 UWP 应用程序,该应用程序给我幻象的 XAML 编译器错误。 在此示例中,我在 Win2D 控件上遇到错误: 控件的命名空间是: xmlns:win2D="usin
我正在使用 Jasmine 对 Angular 应用程序进行单元测试。在 Chrome 上一切正常,直到我开始使用 PhantomJs 进行 headless 浏览器测试或在控制台上测试输出。 2天后
我正在尝试使用 Phantom.JS 在此页面上执行一些页面自动化:https://reserve.apple.com/GB/en_GB/reserve/iPhone 我知道如何使用 document
这是 Scala“Phantom Type”演示的示例,显示 compile-time checking of Rocket Launch configuration : object RocketM
我似乎在 Postgres 中有某种幻影表。 假设我执行以下操作: select * from information_schema.tables where table_schema = 'publ
是否可以使用 Phantom.js 获取警告框内的文本? var page = require("webpage").create() , assert = require("assert"); pa
我正在尝试创建一个列表,其中每一行都有一个指示该行的数字(例如,“1”代表第一行,“2”代表第二行,等等),一个或多个图标(例如,删除、编辑等)紧接在号码的右侧,然后是后面的文本 block 。参见
请帮助我在我的 Windows 8 PC 上配置 phantom.js。 我是从http://phantomjs.org/download.html下载的 它给了我一个 zip 文件,其中有 1 个
我对 PhantomJS 和一般编程都很陌生,所以请耐心等待。我正在尝试编写代码来登录我的亚马逊帐户,并将送货地址添加到我的地址簿中。我正在使用的代码在这里: var steps=[]; var lo
我是一名优秀的程序员,十分优秀!