CasperJS可以访问一个系统上的浏览器元素,但不能访问另一个系统

时间:2013-12-19 23:03:10

标签: phantomjs casperjs

我遇到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

1 个答案:

答案 0 :(得分:1)

我运行了wget,然后像Darren建议的那样将日志分配给onResourceRequestedonResourceReceived,我发现问题是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,但这似乎不起作用。