我遇到CasperJS(版本1.1.0-beta3)和PhantomJS(版本1.9.2)的问题。我在我的工作机器上写了一个脚本,运行正常。我希望这个脚本在另一台机器(测试机器)上运行,所以我在服务器上创建了一个SVN repo,并从测试机器将网络驱动器映射到它。在repo中,我有我的脚本,提取的CasperJS zip和phantomjs.exe的内容。我还在测试机器上更新了系统PATH变量。
我在本地计算机上映射了相同的网络驱动器,之前运行正常。它仍然在那里运行良好,即使从网络驱动器。但是,它不会在测试机器上运行。 CasperJS和PhantomJS工作正常,但脚本似乎无法访问该网站。我的所有捕获都是空白的,它无法找到控件。
我尝试访问的网站是https://admin.surescripts.net。现在,我所要做的就是登录。
如果我为了试图去Google而写一个全新的测试,Casper可以到网站上进行屏幕显示。
我尝试过等待命令来检查时间问题,然后针对同一网站的不同环境运行它。没运气。可能出现什么问题?
以下是测试机器的cmd输出:
Z:\Automated Entry>casperjs automatedentry.js
CasperError: Errors encountered while filling form: form not found
Z:/CasperUtils/CasperJS/modules/casper.js:802 in fillForm
Z:/CasperUtils/CasperJS/modules/casper.js:862 in fillNames
Z:/Automated Entry/automatedentry.js:51
Z:/CasperUtils/CasperJS/modules/casper.js:1553 in runStep
Z:/CasperUtils/CasperJS/modules/casper.js:399 in checkStep
答案 0 :(得分:1)
我运行了wget,然后像Darren建议的那样将日志分配给onResourceRequested
和onResourceReceived
,我发现问题是PhantomJS:
[warning] [phantom] Loading resource failed with status=fail: https://admin.surescripts.net/
原因是PhantomJS因页面的SSL而抛出错误。我运行时将--ignore-ssl-errors=yes
添加到cmd args修复了问题并允许脚本运行。
为什么它发生在我的测试机器而不是我的本地,我仍然没有线索。同时,如果有人对如何将这个标志写入我的脚本有任何建议,这样我每次运行测试时都不必输入它,这将是受欢迎的。我已经尝试在Casper的pageSettings: { ignoreSslErrors: true }
方法中使用create
,但这似乎不起作用。