Return只读内容<input type=text>
Return content of read-only <input type=text>
这是 HTML:
<div id="ifld1014" class="ax-terminal-field x20" title="" style="top: 272px;
left: 154px;"><input type="text" maxlength="30" size="30"
class="ax-terminal-inputField ax_x20i" readonly="readonly" style="width: 240px;"></div>
这是我的一些 casper 代码:
var x = require('casper').selectXPath;
....//truncated for shortness//....
casper.echo(x('//*[@id="ifldf14"]/input').value);
结果未定义。我尝试了 .value、.text、.innerHTML,但当 运行 时它们都未定义。如何获取输入框的内容?
DOM 上下文
CasperJS 沙盒 DOM 上下文(页面上下文)。只有在那里您可以直接访问 DOM 元素。页面上下文在 casper.evaluate()
回调中。 DOM 元素的其他所有内容都只是它的表示,因为 DOM 节点无法传递到外部上下文。
正在访问输入值
有很多方法可以从 DOM 中获取信息,但是 DOM 节点无法按原样打印到控制台。这里有两种获取输入值的方法。
可以使用casper.evaluate()
。由于你想使用 XPath 表达式,你可以使用 __utils__.getElementByXPath()
由 CasperJS 注入页面的辅助函数:
var value = casper.evaluate(function(xpathexpr){
return __utils__.getElementByXPath(xpathexpr).value;
}, '//*[@id="ifldf14"]/input');
casper.echo("value: " + value);
如果输入字段在表单内部并且元素具有名称属性,则可以使用 casper.getFormValues()
并使用字段名称获取值。
casper.echo(casper.getFormValues('form').nameHere);
XPath 辅助工具
var x = require('casper').selectXPath;
只是一个小帮手,可以将字符串转换为具有属性 type
和 path
的对象。它仅在 CasperJS 内部用于表示 XPath。区别是必要的,因为 CasperJS 支持 CSS 选择器和 XPath 表达式。它们最初都是简单的字符串,但执行方式不同。
问题是我没有使用 jQuery 来获取我的价值。感谢大家的参与!
这是 HTML:
<div id="ifld1014" class="ax-terminal-field x20" title="" style="top: 272px;
left: 154px;"><input type="text" maxlength="30" size="30"
class="ax-terminal-inputField ax_x20i" readonly="readonly" style="width: 240px;"></div>
这是我的一些 casper 代码:
var x = require('casper').selectXPath;
....//truncated for shortness//....
casper.echo(x('//*[@id="ifldf14"]/input').value);
结果未定义。我尝试了 .value、.text、.innerHTML,但当 运行 时它们都未定义。如何获取输入框的内容?
DOM 上下文
CasperJS 沙盒 DOM 上下文(页面上下文)。只有在那里您可以直接访问 DOM 元素。页面上下文在 casper.evaluate()
回调中。 DOM 元素的其他所有内容都只是它的表示,因为 DOM 节点无法传递到外部上下文。
正在访问输入值
有很多方法可以从 DOM 中获取信息,但是 DOM 节点无法按原样打印到控制台。这里有两种获取输入值的方法。
可以使用
casper.evaluate()
。由于你想使用 XPath 表达式,你可以使用__utils__.getElementByXPath()
由 CasperJS 注入页面的辅助函数:var value = casper.evaluate(function(xpathexpr){ return __utils__.getElementByXPath(xpathexpr).value; }, '//*[@id="ifldf14"]/input'); casper.echo("value: " + value);
如果输入字段在表单内部并且元素具有名称属性,则可以使用
casper.getFormValues()
并使用字段名称获取值。casper.echo(casper.getFormValues('form').nameHere);
XPath 辅助工具
var x = require('casper').selectXPath;
只是一个小帮手,可以将字符串转换为具有属性 type
和 path
的对象。它仅在 CasperJS 内部用于表示 XPath。区别是必要的,因为 CasperJS 支持 CSS 选择器和 XPath 表达式。它们最初都是简单的字符串,但执行方式不同。
问题是我没有使用 jQuery 来获取我的价值。感谢大家的参与!