问题标签 [casperjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phantomjs - 如何使用 Casper.js 测试 HTTP 到 HTTPS 隧道?
我必须在我们公司的一些外联网上获得测试覆盖率,我们正在使用 phantom.js/casper.js,因为它最容易与我们的其余测试工作流程集成。
尝试通过隧道从 HTTP 转换到 HTTPS 时会出现问题。如果用户访问我们的网站 http//www.somecompany.com 并单击登录链接,他们的浏览器将重定向到 https//extranet.somecompany.com。如果您要查看 HTML 源代码,您会看到与用户被重定向到的表单正确对应的 HTML。
但是,当尝试使用 casper.js 重新创建工作流时,我成功地在登录链接上启动了 click 事件。然后我尝试识别一个表单元素来确认重定向成功,但是这个测试失败了。然后我修改了重定向后的下一步以捕获页面以查看 casper “看到”的内容。当我打开图像时,HTML 看起来好像我从未被重定向过。我知道重定向是有效的,因为我在 Fiddler 中看到了显示隧道正在建立到端口 443 的流量。
我已经搜索了 SO、google 和 Casper google 组,但找不到太多关于从 HTTP 到 HTTPS 的重定向,Casper/Phantom 是否能够自动化这样的工作流程,或者我是否需要查看 Selenium 之类的东西?
javascript - PhantomJS/CasperJS 站点登录,PhantomJS 不接受 cookie
我最近尝试登录一个强制我接受 cookie 的网站。我正在使用 phantomJs 和 casperJs。我编写了一个小脚本来处理登录,但它会将我重定向到一个告诉我必须接受 cookie 的站点。电子邮件和密码只是占位符。
我要登录的网站是https://de.buyvip.com/
. 但我需要单击按钮Anmelden mit Amazon
,以便我可以使用我的亚马逊帐户登录。其他登录表单不起作用。(这导致了这个长网址,我只是从浏览器中复制了它)
有人能帮我吗?
这是脚本:
django - 如何从 Jenkins 运行 casperjs javascript 测试?
我编写了一些 casperjs 测试来测试我的 Django 应用程序。如果启动了 Django 应用程序(例如在端口 8000 上),casperjs 可以作为单独的进程运行并访问我正在运行的 Django 应用程序。
我的其他测试是使用 Django 的(网络)测试框架编写的,该框架使用夹具设置测试数据库,并使用./manage.py test
. 使用 Django webtest,您不需要启动单独的 Django 网络服务器(执行请求和 url 路由是代理/模拟的)。
有没有办法从 Django webtest 中运行 casperjs 测试?无需启动不同的网络服务器并拥有另一个测试数据库?
我已经看到 ghost.py 存在,但还没有尝试过。
node.js - 使用 Spooky.js 运行示例代码时出错
我对整堆, 和node.js
都是phantom.js
新手。我已经安装了所有东西(在 Windows 中),更新了 PATH 并遵循了这个例子:casper.js
spooky.js
https://github.com/WaterfallEngineering/SpookyJS
我收到了这个错误:
任何人都知道为什么以及如何解决它?我跑得casperjs googlelinks.js
很好。但是有了node.js
and spooky.js
,它给我带来了麻烦。
javascript - 运行 phantomjs casperjs 时手动输入
在进行下一步之前,是否可以让脚本(phantomjs 或 casperjs)停止手动输入(键盘输入)?
例如,脚本将填写一个表单并将整个屏幕导出为 .png,然后等待用户输入填写最后一个字段,然后单击提交。验证码是所需的障碍之一。我不想处理验证码破解器/求解器或类似的东西,因为每次运行只有一次。
有什么帮助吗?
javascript - node.js 或 casper.js 中的变量范围
我觉得问这个问题很愚蠢。但是我对下面的变量范围有一个烦人的问题aaa
。最后不应该输出test
吗?但事实并非如此。aaa
在函数中使用我做错了什么?
javascript - 如果 console.log 禁用,则登录 casper.js
以下代码使用casper.js
不输出This is thenEvaluate
字符串,因为Twitter.com已禁用console.log
(空函数):
如果我将url交换到google.com或任何其他网站,它就可以工作。我的问题是:
对于网站禁用
console.log
,有没有办法重新启用它?如果 #1 没有,有没有办法在内部
evaluate()
或thenEvaluate()
函数中做任何类型的日志?
谢谢。
javascript - casper.js 中的 setInterval 和 this.wait
我需要在每次迭代之间循环 3 次和 2 秒。我尝试了这 3 个选项:
选项1
观察:什么都没有出现,因为脚本在第一次setInterval
被调用之前就结束了。
选项 2
替换thenEvaluate()
为then()
以下
观察:它立即输出 3 次,然后等待很长时间,因为this.wait()
它是异步的。这不是我想要的,因为我想要两者之间的延迟。
选项 3用下面的这个
替换零件then()
。我正在考虑waitFunc()
在每次wait()
被调用后进行递归调用。
观察:屏幕上没有打印出来。
所以我的问题是:如何使 this.wait 或 setInterval 像这种情况一样循环工作 3 次?
javascript - 使用 Casperjs 清除本地存储
我正在使用 casperjs 对使用 localstorage 的主干应用程序进行一些测试。
我的问题是使用 casperjs 进行测试时无法清除本地存储。
我一直在尝试localStorage.clear();
在我的 casper 文件的开头使用,但没有清除任何内容。
javascript - 直接从 CasperJS 调用 JS 方法
我正在尝试使用 CasperJS 测试页面,特别是我想戳一堆数据模型。假设我有一个名为 tax 的基本函数,我想确保它使用正确的税率。所以我想要类似的东西:
而不是填写表格并查看打印的内容。该taxes
方法存在于全局范围内,因此我可以从任何地方(包括从 firebug 或 Chrome 中的控制台)轻松执行它。但它不在 CasperJS 中工作的正确范围(我认为?我得到ReferenceError: Can't find variable: taxes
.
好像我错过了一些简单的东西。
TL;DR:如何在 CasperJS 测试中直接执行页面上的 JS 位?