Casperjs中fill提交表单遇到的问题
2015-07-23 16:02
645 查看
Casperjs中fill的作用是填充表单值,并可以提交(可选),API:http://docs.casperjs.org/en/latest/modules/casper.html#fill,这里不详述它的用法。
今天遇到一个问题,在此记录一下。问题是这样的:我一个可以正常提交form的casperjs脚本,在windows可以正常工作,之前在一台centos的linux服务器上也可以正常工作,今天在一台ubuntu12.04的服务器上却不行,尝试过各种办法(降低casperjs/phantomjs版本等)都不行。调用fill方法后,打出warning消息:[warning] [remote] unable to submit form。为了查找原因,我都去翻看了它git上的源码,想知道是哪块儿出了问题,找到以下代码块儿:
看下来似乎是没有办法dispatchEvent “submit”的event。但是此时我的心情是“朕知道了,但朕也无能为力”……
考虑到这应该是兼容性的问题,不能也不好做什么大改动。但又必须让它正常工作。所以尝试寻找其它等同效果的办法。现在的问题是提交,而casperjs的api中除了这个fill方法没有提交直接的submit方法。这该怎么办法呢?接下来,我从casperjs的click api示例代码中得到启发。调用evaluate进入页面然后调用原生js的submit方法提交表单。怀着试一下心态运行了一下,各环境都能正常工作!
所以,为了兼容性,Casperjs中这样的写法:
应该写成下面这样比较好:
今天遇到一个问题,在此记录一下。问题是这样的:我一个可以正常提交form的casperjs脚本,在windows可以正常工作,之前在一台centos的linux服务器上也可以正常工作,今天在一台ubuntu12.04的服务器上却不行,尝试过各种办法(降低casperjs/phantomjs版本等)都不行。调用fill方法后,打出warning消息:[warning] [remote] unable to submit form。为了查找原因,我都去翻看了它git上的源码,想知道是哪块儿出了问题,找到以下代码块儿:
考虑到这应该是兼容性的问题,不能也不好做什么大改动。但又必须让它正常工作。所以尝试寻找其它等同效果的办法。现在的问题是提交,而casperjs的api中除了这个fill方法没有提交直接的submit方法。这该怎么办法呢?接下来,我从casperjs的click api示例代码中得到启发。调用evaluate进入页面然后调用原生js的submit方法提交表单。怀着试一下心态运行了一下,各环境都能正常工作!
所以,为了兼容性,Casperjs中这样的写法:
相关文章推荐
- 用CasperJs自动浏览页面
- 在Windows下编写并运行第一个ASP.NET 5 Preview Web API程序
- [ASP.NET MVC 小牛之路]18 - Web API
- [ASP.NET MVC 小牛之路]17 - 捆绑(Bundle)
- [ASP.NET MVC 小牛之路]16 - Model 验证
- [ASP.NET MVC 小牛之路]15 - Model Binding
- ASP.NET中文件上传与下载
- [ASP.NET MVC 小牛之路]14 - Unobtrusive Ajax
- [ASP.NET MVC 小牛之路]13 - Helper Method
- [ASP.NET MVC 小牛之路]11 - Filter
- ASP.Net IE10+ SCRIPT:XXX_doPostBack 未定义
- 【asp】web做文件上传,需要在表单用上 <form Enctype="multipart/form-data"/>
- [ASP.NET MVC 小牛之路]10 - Controller 和 Action (2)
- [ASP.NET MVC 小牛之路]09 - Controller 和 Action (1)
- [ASP.NET MVC 小牛之路]08 - Area 使用
- [ASP.NET MVC 小牛之路]06 - 使用 Entity Framework
- RaspberryPi 树莓派启动报错 mmcblk0: error -110 解决方法
- [ASP.NET MVC 小牛之路]05 - 使用 Ninject
- [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
- [ASP.NET MVC 小牛之路]03 - Razor语法