问题标签 [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.
casperjs - 将 onAuthPrompt() 与 CasperJS 和 SlimerJS 一起使用
SlimerJS 添加了onAuthPrompt
回调。是否有可能让它与 CasperJS 一起工作?
我发现提到phantomjs或slimerjs对象可以作为casper.page
,然后下面的答案说casper.page
只有在调用后才可用casper.start()
:https ://stackoverflow.com/a/16629231/841830
所以我尝试了这段代码。onAuthPrompt
代码取自文档;我刚刚添加了一条日志行以确保它有效。
它加载url
(不需要身份验证),然后建立XMLHttpRequest
或EventSource
连接,这需要身份验证。我看到密码提示弹出,但我的onAuthPrompt()
函数没有被调用。
我做错了什么,或者这不是 onAuthPrompt 的用途,还是我可以报告的错误(但在这种情况下,您认为问题出在 CasperJS 还是 SlimerJS 中?)。
ssl - SlimerJS 忽略 SSL 错误
我在将 SlimerJS 整合到我的网络爬虫的道路上还很远,我遇到了一个问题。我正在处理的一个网站只是让他们的 SSL 证书失效。在查看Slimer 的 SSL 文档时,他们似乎不支持 PhantomJS 的ignore-ssl-errors
选项。有没有解决的办法?出现在浏览器中的 SSL 证书错误页面没有任何continue
可以让 Slimer 点击的按钮。作为一个仅供参考,我使用 CasperJS 作为 SlimerJS 的包装器。
windows - 如何在 Windows 上使用 CasperJS 设置 SlimerJS?
我将 casperjs 和 slimerjs 放在桌面的一个文件夹中。
我将这些文件夹添加到我的 PATH 中。
- C:\Users\User1\Desktop\Bins\casperjs
- C:\Users\User1\Desktop\Bins\slimerjs-0.9.0
我设置了一个新的用户变量 SLIMERJSLAUNCHER,并以此为值:
但是当我启动这样的脚本时:
我有一个消息框:
我的设置有什么问题?
exe - 在 casperjs 中启动 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 时,我会收到以下消息:
但是在 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 不再被识别。
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( 我 认为在这个问题上没用)
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 多个未解决的问题,我想在开票之前检查我是否真的做对了。
谢谢你。
casperjs - 使用 slimerjs 运行 casperjs 测试
我用 casperjs 写了一些测试。他们用 phantomjs 运行得很好。但是,当我尝试通过以下命令使用 slimerjs 时:
出现一个带有 SlimerJs 徽标和版本号的小窗口,但控制台似乎挂起以下行:
还有什么我需要做的吗?以下是版本号:
更新:
我删除了代码,直到我得到 slimerjs 来打开浏览器并执行测试。似乎每当我需要一个 js 文件时它就会挂起(我遵循页面对象模式):
我认为require.paths可能会有所帮助。关于如何解决这个问题的任何想法?
javascript - 如何在使用 slimerjs 在 casperjs 中运行测试脚本时最大化浏览器窗口
使用 slimerjs engine 在 casperjs 中运行测试脚本时,我无法查看完整窗口。谁能帮我增加mozila浏览器窗口的大小
javascript - 重新运行 casperjs 脚本
我对 CasperJS 比较陌生,写过简单的抓取脚本,现在我面临一项更艰巨的任务:我想从 url 列表中抓取某种数据,但有些页面有时会“失败”,我有一个验证码解决服务,因为其中一些页面默认有验证码,但是 phantomjs 在渲染一些验证码时相当不一致,有时它们会加载,有时它们不会。
我认为的解决方案是使用无法加载验证码的页面重新运行脚本,以获得我需要的数据量。但我似乎没有让它运行,我想用整个东西创建一个函数,然后在casper.run()
方法内部调用它并检查如果不重新运行,抓取的数据量是否满足我需要的最小值,但我没有真的知道如何完成它,至于我所看到的 casperjs 在调用函数之前将步骤添加到堆栈中(如果我错了,请纠正我)。此外,我正在考虑使用该run.complete
事件,但不太确定该怎么做。我的脚本是这样的:
无论如何我可以将casper.eachThen()
块包装在一个函数中并做这样的事情吗?
此外,我尝试使用 slimerjs 作为引擎来避免“不一致”,但我无法在我拥有的__utils__.sendAjax()
内部使用该方法casper.evaluate()
,所以它是一个交易破坏者。或者有没有办法在单独的实例中异步执行 GET 请求?如果是这样,我会很感激你的建议
更新:我从未设法用 casperjs 解决它,但我仍然为我的特定用例找到了解决方法,请查看我的答案以获取更多信息
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