问题标签 [slimerjs]

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.

0 投票
1 回答
652 浏览

casperjs - 将 onAuthPrompt() 与 CasperJS 和 SlimerJS 一起使用

SlimerJS 添加了onAuthPrompt回调。是否有可能让它与 CasperJS 一起工作?

我发现提到phantomjs或slimerjs对象可以作为casper.page,然后下面的答案说casper.page只有在调用后才可用casper.start()https ://stackoverflow.com/a/16629231/841830

所以我尝试了这段代码。onAuthPrompt代码取自文档;我刚刚添加了一条日志行以确保它有效。

它加载url(不需要身份验证),然后建立XMLHttpRequestEventSource连接,这需要身份验证。我看到密码提示弹出,但我的onAuthPrompt()函数没有被调用。

我做错了什么,或者这不是 onAuthPrompt 的用途,还是我可以报告的错误(但在这种情况下,您认为问题出在 CasperJS 还是 SlimerJS 中?)。

0 投票
1 回答
2528 浏览

ssl - SlimerJS 忽略 SSL 错误

我在将 SlimerJS 整合到我的网络爬虫的道路上还很远,我遇到了一个问题。我正在处理的一个网站只是让他们的 SSL 证书失效。在查看Slimer 的 SSL 文档时,他们似乎不支持 PhantomJS 的ignore-ssl-errors选项。有没有解决的办法?出现在浏览器中的 SSL 证书错误页面没有任何continue可以让 Slimer 点击的按钮。作为一个仅供参考,我使用 CasperJS 作为 SlimerJS 的包装器。

0 投票
1 回答
3279 浏览

windows - 如何在 Windows 上使用 CasperJS 设置 SlimerJS?

我将 casperjs 和 slimerjs 放在桌面的一个文件夹中。

我将这些文件夹添加到我的 PATH 中。

  • C:\Users\User1\Desktop\Bins\casperjs
  • C:\Users\User1\Desktop\Bins\slimerjs-0.9.0

我设置了一个新的用户变量 SLIMERJSLAUNCHER,并以此为值:

但是当我启动这样的脚本时:

我有一个消息框:

我的设置有什么问题?

0 投票
3 回答
9972 浏览

exe - 在 casperjs 中启动 slimerjs 的正确方法是什么(使用绝对路径)?

slimerjs 启动

好吧,我可以通过指定 slimer.bat 文件的路径来启动 slimerjs:C:\bin\slimerjs\slimerjs.bat 然后执行我的文件。

但是,如果我修改 casperjs 文件(在 bin\ 中)并修改默认 exec 为 slimer :

当我执行 casper 命令时:

它不起作用,slimerjs.bat 的路径似乎被忽略了。

我也试过这个:https ://github.com/laurentj/slimerjs/blob/master/BUILD.md

但是仅使用 slimerjs.exe 是不够的,我需要在执行测试的当前文件夹中有 application.ini 和 omni.ja,并且我不想在每个文件夹中添加一些文件。

我想要的只是使用引擎属性在 casperjs 中执行 slimerjs,无论我在哪里,就像在 phantomjs 中一样,所以我需要设置一个绝对路径(或从根目录的相对路径)。

我不想在 slimerjs.bat 文件夹中并指定我想要执行的文件夹或 js 测试:casperjs test C:/bin/try/test.js --engine=slimerjs。

这里有一个类似的问题: https ://github.com/n1k0/casperjs/issues/591

编辑(感谢达伦库克的回答)了解更多详情:

如果我为 slimer 设置 Windows PATH,当我执行 casperjs test --engine=slimerjs test.js 时,我会收到以下消息:

失败 slimerjs

但是在 test.js 文件夹中添加这两个文件可以解决问题。

小路

所以我想我必须修改 slimerjs bat 文件,以设置 slimerjs.bat 文件夹中的 :callexec 路径,而不是当前的 test.js 文件夹。

这里 :

和 :

问题是我不熟悉这种语法(批处理文件),它可能已经正确并且问题不是来自这里。

但我观察到的是它似乎从当前文件夹中寻找 application.ini 和 omni.ja,而不是 slimerjs 文件夹。

PS:第二个想法不起作用,但现在我知道它来自 slimerjs。

编辑:

所以路径似乎很好,实际上它只适用于 slimerjs:slimerjs test.js 效果很好,它不需要 application.ini。所以这两者的结合是行不通的。

当您使用 casper 命令启动它时,路径不同(当前文件夹),并且 application.ini 不再被识别。

0 投票
1 回答
1501 浏览

javascript - CasperJS- 在网站上注册并验证在 Gmail 上发送的邮件 - 对于 slimer 和 phantom-

编辑:这是 Windows 的行为,在 linux 中它只是失败了。

首先,如果您使用 casper 成功在 gmail 上导航(没有随机等待时间 - 从 20 秒到 5 分钟),请告诉我。

我想在我们的网站上注册,然后通过 Gmail 自动验证我的注册(整个注册步骤)。以前有人这样做过吗?

我注册没有问题,我可以登录我的邮箱(Gmail),但是在我在 Gmail 中导航和验证我的注册时遇到了一些麻烦,我观察到 phantomJS 和 slimerJS 之间的不同行为。

在幻像中它会工作(没有特殊命令),但可能需要 5 分钟才能通过下一步(waitForSelector)。使用 slimerjs,它只会停留在邮箱页面上。

编辑:奇怪的事情:如果我在打开弹出窗口的链接上手动单击(更苗条),它将停止被阻止并且我的导航继续,就像它无法检测到步骤本身的结束并且无法执行 waitFor提交点击后没有其他交互。是刷新/重新加载问题吗?

试试看自己:

而且我没有收到任何超时错误。在 slimerjs 中,它只是保持页面打开。

如果我执行 waitForPopup 而不是 waitForUrl,则会出现错误(超时 -> 未弹出),那么为什么 waitForUrl/waitForSelector... 会卡住?我也尝试了 --web-security=no,--ignore-ssl-errors=true 命令(未链接,但我也尝试了 --output-encoding=ISO 8859-1 ,但它不起作用)。

这里幻影和苗条(doc)之间的区别:http://docs.slimerjs.org/0.8/differences-with-phantomjs.html( 认为在这个问题上没用)

0 投票
1 回答
652 浏览

node.js - phantomjs/slimerjs 输出到标准输出为空

我一直在尝试使用 phantomjs 或 slimerjs 从网站捕获一系列 png,然后将输出发送到 /dev/stdout 并将其通过管道传输到 ffmpeg 以制作视频。

像这样:

测试.js:

但是我在标准输出上没有得到任何东西,在最新的 ubuntu 和 debian wheezy 上尝试了这个,来自端口的 node.js 和从 git 编译的 node.js。

phantomjs 安装npm install -g phantomjs

我猜这是一个错误,尝试查看他们的 github 问题跟踪器,但有 1000 多个未解决的问题,我想在开票之前检查我是否真的做对了。

谢谢你。

0 投票
2 回答
3931 浏览

casperjs - 使用 slimerjs 运行 casperjs 测试

我用 casperjs 写了一些测试。他们用 phantomjs 运行得很好。但是,当我尝试通过以下命令使用 slimerjs 时:

出现一个带有 SlimerJs 徽标和版本号的小窗口,但控制台似乎挂起以下行:

还有什么我需要做的吗?以下是版本号:

更新:

我删除了代码,直到我得到 slimerjs 来打开浏览器并执行测试。似乎每当我需要一个 js 文件时它就会挂起(我遵循页面对象模式):

我认为require.paths可能会有所帮助。关于如何解决这个问题的任何想法?

0 投票
2 回答
7260 浏览

javascript - 如何在使用 slimerjs 在 casperjs 中运行测试脚本时最大化浏览器窗口

使用 slimerjs engine 在 casperjs 中运行测试脚本时,我无法查看完整窗口。谁能帮我增加mozila浏览器窗口的大小

0 投票
2 回答
1100 浏览

javascript - 重新运行 casperjs 脚本

我对 CasperJS 比较陌生,写过简单的抓取脚本,现在我面临一项更艰巨的任务:我想从 url 列表中抓取某种数据,但有些页面有时会“失败”,我有一个验证码解决服务,因为其中一些页面默认有验证码,但是 phantomjs 在渲染一些验证码时相当不一致,有时它们会加载,有时它们不会。

我认为的解决方案是使用无法加载验证码的页面重新运行脚本,以获得我需要的数据量。但我似乎没有让它运行,我想用整个东西创建一个函数,然后在casper.run()方法内部调用它并检查如果不重新运行,抓取的数据量是否满足我需要的最小值,但我没有真的知道如何完成它,至于我所看到的 casperjs 在调用函数之前将步骤添加到堆栈中(如果我错了,请纠正我)。此外,我正在考虑使用该run.complete事件,但不太确定该怎么做。我的脚本是这样的:

无论如何我可以将casper.eachThen()块包装在一个函数中并做这样的事情吗?

此外,我尝试使用 slimerjs 作为引擎来避免“不一致”,但我无法在我拥有的__utils__.sendAjax()内部使用该方法casper.evaluate(),所以它是一个交易破坏者。或者有没有办法在单独的实例中异步执行 GET 请求?如果是这样,我会很感激你的建议

更新:我从未设法用 casperjs 解决它,但我仍然为我的特定用例找到了解决方法,请查看我的答案以获取更多信息

0 投票
1 回答
1380 浏览

ruby - How to install wraith on windows 7

Does anyone knows (maybe all relevant steps) how I can run/install Wraith on Windows 7?

The documentation (http://bbc-news.github.io/wraith/index.html#Installation) is unfortunately very vague.

Thanks in advance

Martin