更改选择框选项的值并在CasperJS中选择它

时间:2013-10-18 16:51:00

标签: javascript phantomjs html-select casperjs

我试图通过劫持控制页面上显示的查询结果数量的表单元素来绕过一些困难的查询结果分页。当我在Firebug控制台中针对实时网站测试我的Javascript修改时,它就像一个冠军,但是当通过casper.evaluate方法将相同的Javascript注入DOM时,我得到的结果不一致。

我的代码如下:

var s = document.getElementById("requisitionListInterface.dropListSize");
s.options[4].value = 1000;
s.options[4].selected = true;
var e = document.createEvent("HTMLEvents");
e.initEvent("change", false, true );
setTimeout( function(s, e){ s.dispatchEvent(e); }, 2000, s, e );

我必须创建然后事件处理程序'e'并将其附加到元素's'以便复制表单上发生的事情(当select.change发生时提交页面)。

上述代码再次在Firefox中按预期运行。

1 个答案:

答案 0 :(得分:0)

如果选择框正在激活Ajax,您可能无法给浏览器足够的时间来获取结果。我会在那里放一些等待语句,以便有足够的时间来查找和执行。