微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Phantomjs – 如何填写表单,提交并获得结果?

我似乎无法做一个简单的表单提交.

以下是我向Google搜索表单提交“测试”的代码,并打印出结果.

var url = 'http://www.google.com/',page = new WebPage();

page.open(url,function(status) {
    if (status !== 'success')
    {
      console.log('Unable to access network');
      phantom.exit();
      return;
    }
    else
    {
        page.includeJs("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js",function() {
            page.evaluate(function() {
                $('#gbqfq').val("Test");

                $("#gbqfba").click();

            });

            page.render('google.png');
            phantom.exit();
        });
    }
});

任何人都可以告诉我如何做到这一点我在这里和其他地方看过,但似乎没有任何工作.

解决方法

在“点击”之后立即呈现页面是不够的.你必须给网络引擎时间来做任何调用,并执行结果的JavaScript.

电话评估后请考虑以下内容

window.setTimeout(
  function () {
    page.render( 'google.png' );
    phantom.exit(0);
  },5000 // wait 5,000ms (5s)
);

顺便说一下,点击可能会或可能不工作,取决于它是什么样的元素.如果这不工作,我建议您在互联网上搜索如何点击DIV或任何类型的元素(有一种涉及创建鼠标事件的技术).

原文地址:https://www.jb51.cc/js/154830.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐