Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phantomjs CasperJS可以访问一个系统上的浏览器元素,但不能访问另一个系统上的浏览器元素_Phantomjs_Casperjs - Fatal编程技术网

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

Phantomjs CasperJS可以访问一个系统上的浏览器元素,但不能访问另一个系统上的浏览器元素,phantomjs,casperjs,Phantomjs,Casperjs,我对CasperJS(版本1.1.0-beta3)和PhantomJS(版本1.9.2)有问题。我在我的工作机器上写了一个脚本,它运行得很好。不过,我希望这个脚本在另一台机器(测试机器)上运行,所以我在服务器上创建了一个SVN repo,并从测试机器将一个网络驱动器映射到它。在repo中,我有我的脚本、提取的CasperJS zip的内容和phantomjs.exe。我还更新了测试机器上的系统路径变量 我在本地机器上映射了相同的网络驱动器,在那里它以前运行良好。它在那里仍然运行良好,即使是从网络

我对CasperJS(版本1.1.0-beta3)和PhantomJS(版本1.9.2)有问题。我在我的工作机器上写了一个脚本,它运行得很好。不过,我希望这个脚本在另一台机器(测试机器)上运行,所以我在服务器上创建了一个SVN repo,并从测试机器将一个网络驱动器映射到它。在repo中,我有我的脚本、提取的CasperJS zip的内容和phantomjs.exe。我还更新了测试机器上的系统路径变量

我在本地机器上映射了相同的网络驱动器,在那里它以前运行良好。它在那里仍然运行良好,即使是从网络驱动器。不过,它不会在测试机器上运行。CasperJS和PhantomJS工作正常,但脚本似乎无法访问该站点。我所有的捕获结果都是空白的,它找不到控件

我试图访问的站点是。现在,我要做的就是登录

如果我写一个全新的测试只是为了尝试进入谷歌,Casper可以进入该网站进行筛选

我尝试输入wait命令来检查时间问题,并在同一网站的不同环境中运行它。不走运。出了什么问题

以下是测试机器的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

我运行了wget,然后按照Darren的建议将日志分配给
onResourceRequested
onResourceReceived
,我发现问题出在PhantomJS上:

[warning] [phantom] Loading resource failed with status=fail: https://admin.surescripts.net/
由于页面的SSL,PhantomJS抛出了一个错误。在运行cmd args时,将其添加到cmd args中,修复了问题并允许脚本运行


为什么它发生在我的测试机器上而不是我的本地机器上,我仍然不知道。同时,如果有人对如何将此标志写入脚本有任何建议,这样我就不必每次运行测试时都键入它,那将是受欢迎的。我已经尝试在Casper的
create
方法中使用
pageSettings:{ignoresslers:true}
,但这似乎不起作用。

站点是本地的还是远程的?您使用什么URL或路径访问它?第一个疑难解答是网络级别。在linux上,我会使用wget或curl来确保可以访问URL。(快速搜索显示至少有一个“Wget for windows”)@DarrenCook-我不认为这是网络问题,因为测试机器有互联网连接,我可以通过浏览器访问该网站。我的意思是首先确认它与Wget(或curl或同等软件)一起工作,即从命令行。然后,如果它确实这样做了(正如您预测的那样),则以最详细的模式运行它,以了解它连接了什么IP,发送了什么报头,接收了什么报头。在这里发布,以及casperjs中的等效项(为
onResourceRequested
onResourceReceived
分配一个日志函数)。然后找出差异:-)@DarrenCook-我根据你的建议偶然发现了解决方案。非常感谢。表示没有忽略错误设置。我想它需要在启动时交给幻影。是否使用windows批处理文件来保存每次都必须键入的文件?