- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 Phantom.js 获取警告框内的文本?
var page = require("webpage").create()
, assert = require("assert");
page.open("http://www.mysite.com/page", function (status) {
page.includeJs("jquery-1.10.2.min.js", function () {
var alertText = page.evaluate(function () {
//This should cause an alert dialog to appear
$('button[type="submit"]').click();
//This doesn't work, but is there some equivalent to this?
return $("alert").val();
});
assert.equal(alertText, "Thanks for clicking Submit!");
});
});
最佳答案
无法从 alert
获取消息这样(没有名为 <alert>
的 HTML 元素,这是您要使用 jQuery 查找的元素)。但是,您可以做的是重新定义 window.alert
做其他事情,比如登录控制台。然后你可以使用onConsoleMessage
查看控制台消息。为了将它与您可以获得的其他控制台消息区分开来,您可以给它一个唯一的前缀。我用了ALERT:
在这种情况下:
page.evaluate(function() {
window.alert = function(str) {
console.log("ALERT:" + str);
}
});
page.onConsoleMessage(function(message, lineNumber, sourceId) {
if(/^ALERT:/.test(message)) {
//do something with message
}
});
如果你不想去 onConsoleMessage
路线,您可以创建自己的隐藏 input
元素(在重新定义的 alert
中)然后简单地查询该值:
page.evaluate(function() {
window.alert = function(str) {
if(jQuery("#alertText").length === 0) {
jQuery("body").append(jQuery("<input>").attr("id", "alertText").attr("text", "hidden");
}
jQuery("#alertText").val(str);
}
});
然后在你的代码中,而不是 jQuery("alert").val()
, 你会做 jQuery("#alertText").val()
.
关于javascript - Phantom.js - 在警告框内获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822812/
如果我使用 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
我是一名优秀的程序员,十分优秀!