【问题标题】:How to fill up form using CasperJS without form tag如何使用没有表单标签的 CasperJS 填写表单
【发布时间】:2013-10-27 02:16:31
【问题描述】:

我是 CasperJS 的新手,在登录此站点时遇到问题 http://weibo.com/login.php

这是我尝试过的

this.fill('form#contact-form', {
    'username':    'test@test.com',
    'password':    'anypassword',

}, true);

我不能使用它,因为它没有形式。

所以我尝试了使用 sendKeys 的不同方法。

this.sendKeys('.W_input ', 'tinkerbell@gmail.com');

现在我的问题是输入文本中没有 ID,只有一个 CLASS,用户名和密码都具有相同的 CLASS。如何仅使用该类在该文本框中键入内容?还是可以通过 XPath 使用 sendKeys?

【问题讨论】:

  • sendKeys 使用键盘事件输入。这可能会导致一些奇怪的问题......

标签: javascript casperjs html-input


【解决方案1】:

casper 支持 CSS3 选择器 (tuts+ has a decent rundown of the top 30 you should memorize),因此您可以执行以下操作:

this.sendKeys('input[name=username]', 'tinkerbell@gmail.com');

【讨论】:

    【解决方案2】:

    我使用querySelector函数设置用户名和密码成功:

    var casper = require("casper").create();
    casper.start('http://www.weibo.com', function() {
        this.evaluate(function(username, password) {
            document.querySelector('input[node-type="username"]').value = username;
            document.querySelector('input[node-type="password"]').value = password;
            document.querySelector('.W_btn_g:eq(1)').click();
        }, 'your_username', 'your_password');
    
    });
    
    casper.then(function() {
        this.wait(50000, function() {
            this.echo("50s");
        });
    
    });
    
    casper.then(function() {
        this.capture('weibo.png');
    });
    
    casper.run();
    

    【讨论】:

    • 解释一下就好了!
    【解决方案3】:

    这是一个简单的 casper js 脚本来填写登录表单 假设它已经提到了每个字段的 id

    casper.evaluate(函数(用户名,密码){ document.querySelector('input#user_email').value = username;

          document.querySelector('input#user_password').value = password;
          document.querySelector('input#login-button').click();
      }, 'email@email.com', 'password');
    

    【讨论】:

    • 请编辑您的答案以解释如何解决问题。不鼓励仅使用代码的答案,因为它们不教任何东西。另外请将第一行代码缩进 4 个空格,以便格式正确。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多