【问题标题】:CasperJS how to fire blur eventsCasperJS如何触发模糊事件
【发布时间】:2026-02-15 21:30:01
【问题描述】:

我有一个在填写时计算的表格。我想通过 casper 填写该表格并获得结果。 在我的表格中,我正在计算每个字段的模糊度。如何使用 casperJS 触发模糊事件?

【问题讨论】:

  • 您是在问如何在触发模糊事件时触发 casper 事件,或者如何在触发 casper 事件时触发模糊事件?如果您询问如何触发模糊事件,则无需使用 casper 来触发原生 javascript 事件。
  • 无论如何,在我的表单中,当文本字段模糊时,会触发 ajax 调用。我只是想这样做
  • @DavidKamer 我在问如何在触发 casper 事件时触发模糊事件

标签: testing phantomjs casperjs blur


【解决方案1】:

根据the specs你可以触发原生模糊功能:

casper.evaluate(function(){
    document.querySelector('.some-element').blur();
});

【讨论】:

    【解决方案2】:

    考虑一下这个简单的 HTML 表单:

    <form id="example">
      <input name="value_one" type="text" onblur="addition()">
      <input name="value_two" type="text" onblur="addition()">
    </form>
    

    假设以下 JavaScript 函数被触发 onblur:

    function addition() {
      var value_one = document.getElementsByName('value_one')[0].value;
      var value_two = document.getElementsByName('value_two')[0].value;
      var result = document.getElementById('result');
    
      result.textContent = parseInt(value_one) + parseInt(value_two);
    }
    

    您可以使用以下 CasperJS 脚本来获取结果:

    var casper = require('casper').create();
    
    casper.start('https://www.example.com/', function () {
      this.fill('#example', {
        value_one: '5',
        value_two: '10',
      });
    
      this.echo(this.getElementInfo('#result').text); // Result: 15
    });
    
    casper.run();
    

    【讨论】:

    • 这里的问题是,我正在填写Knockout的表格。