Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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
Javascript CasperJS无法填充google搜索字段_Javascript_Firefox_Phantomjs_Casperjs_Slimerjs - Fatal编程技术网

Javascript CasperJS无法填充google搜索字段

Javascript CasperJS无法填充google搜索字段,javascript,firefox,phantomjs,casperjs,slimerjs,Javascript,Firefox,Phantomjs,Casperjs,Slimerjs,我正在使用CasperJS(带有slimerjs引擎)来填充表单。然而,这是行不通的 我用一个简单的google.com脚本进行了尝试: var casper = require("casper").create({ verbose: true, logLevel: "debug" }); var fs = require("fs"); phantom.cookiesEnabled = true; casper.options.viewportSize = { width:

我正在使用CasperJS(带有slimerjs引擎)来填充表单。然而,这是行不通的

我用一个简单的google.com脚本进行了尝试:

var casper = require("casper").create({
    verbose: true,
    logLevel: "debug"
});

var fs = require("fs");

phantom.cookiesEnabled = true;

casper.options.viewportSize = { width: 1024, height: 768 };

casper.start();

casper.userAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

casper.thenOpen("http://www.google.com", function(response) {
    casper.fill("form[id='gbqf']", {
        q: "test"
    }, true);
}).run();
表单未填写,页面加载后不会发生任何事情。。详细日志说明:

[info] [remote] attempting to fetch form element from selector: 'form[id='gbqf']'
[info] [phantom] Done 2 steps in 1086ms
(然后结束)


我做错了什么?表单ID是100%正确的

谷歌根据用户代理、视口大小、cookie和其他指标提供不同的页面。您必须确保元素确实存在。您可以使用
casper.exists()
函数检查它


我发现谷歌搜索的一个好选择是“form[action='/search']”,而不管引擎(PhantomJS或SlimerJS)和用户代理字符串(有或没有声明为IE)。

如果改用
#gbqf
选择器,会有什么不同吗?谢谢。@alecxe:不同之处在于,它卡在第一个尝试获取的[info]遥控器上。。而且永远不会达到第二个“完成2步”,否则也会失败