Javascript 获取casperjs中输入的值

Javascript 获取casperjs中输入的值,javascript,testing,phantomjs,casperjs,Javascript,Testing,Phantomjs,Casperjs,嗨,allm,我想知道如何使用casperjs获取输入值 这是我的html元素 <input type="hidden" name="key" value="newkey"> 在这种情况下,返回null 我也尝试过: activationKey = __utils__.getFieldValue('key'); 但请将此错误返回给我: FAIL ReferenceError: Can't find variable: __utils__ 尝试使用以下方法: this.getEl

嗨,allm,我想知道如何使用casperjs获取输入值

这是我的html元素

<input type="hidden" name="key" value="newkey">
在这种情况下,返回
null

我也尝试过:

activationKey = __utils__.getFieldValue('key');
但请将此错误返回给我:

FAIL ReferenceError: Can't find variable: __utils__
尝试使用以下方法:

this.getElementAttribute('input[type="hidden"][name="key"]', 'value');

如果该值是动态设置的,则
此.getElementAttribute
将不起作用,
\uuuUtils\uUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuUuGetFieldValue
。从1.1.3开始,唯一的方法是调用底层文档对象的querySelector

  var value = this.evaluate(function() {
    return document.querySelector('[name="key"]').value
  })
有点罗嗦,但至少它是有效的

此外,关于找不到____; utils的原因,请使用以下方法导入它:

var __utils__ = require('clientutils').create()

在OP的示例中,_utils__;位于evaluate()函数中。它不应该是这样的,因为uuu utils uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。知道为什么吗?@VicSeedoubleyew遗憾的是,不,它应该在这两种情况下都能工作。^^@VicSeedoubleyew,我怀疑它不能工作,因为getElementAttribute不能处理动态值(即加载页面后设置的值)。我将在这里添加另一个答案,该答案在动态设置表单值时有效。这个不相关的答案更深入地解释了为什么使用get*属性获取值并不总能满足您的期望:
var __utils__ = require('clientutils').create()