CasperJS使用不存在的表单字段提交

时间:2014-07-29 13:44:46

标签: casperjs

我有一个我需要提交的表单,它有动态添加的输入。使用Casper单击创建输入的元素似乎无效。

有没有办法用CasperJS将这些输入添加到dom中?如果没有,是否有另一种解决方案来提交一个表格,其中的附加值超出当时的dom值?

1 个答案:

答案 0 :(得分:1)

您可以通过 casper.evaluate 在DOM上下文/页面上下文中运行纯JavaScript。其中一部分可能如下所示:

casper.evaluate(function(formSelector, values){
    var form = querySelector(formSelector);
    for(var key in values) {
        if (values.hasOwnProperty(key)) {
            var hidden = document.createElement("input");
            hidden.type = "hidden"
            hidden.name = key;
            hidden.value = values[key];
            form.appendChild(hidden);
        }
    }
}, "#form", {key1: "value1", key2: "value2"});

请记住,evaluate是沙箱,对象的交换是有限的。


我仍然建议您尝试修复点击问题。在短期内可以接受一些调用,但如果你试图创建一个大的测试套件,你将需要维护代码库,这将是非常糟糕的维护。

请注册参加remote.messagepage.error活动。也许有错误。如果绑定是个问题,则需要shim

如果这没有显示任何内容,请参阅我的建议here