如何:打印选择选项值
How to: Print Select Option Values?
我正在尝试打印"complist"中每个选项的值,它看起来像这样:
<select name="complist">
<option selected="" value="111 1">107-83-5 C6H14 2-Methylpentane</option>
<option value="1 24"> 75-07-0 C2H4O Acetaldehyde</option>
<option value="6 2">106-93-4 C2H4Br2 Ethylene bromide</option>
</select>
我试着:
casper.then(function(){
this.evaluate(function(){
//var options = document.querySelectorAll('select[name="complist"]');
var options = document.querySelector('select[name="complist"]');
})
for (var i=0; i< options.length; i++){
console.log(">>> " + options[i].textContent);
}
});
但是我得到以下错误:
- Error>参考错误:Can't find variable: options, ERROR
- File>phantomjs://代码/gruppen3.js,警告
- Line>113年,警告
- Function>,警告
由选项产生。for循环的长度:/
我尝试了一些其他的方法(例如如何使用CasperJS选择一个选项)来返回选项列表,但是到目前为止没有任何工作。
要确切地了解我在说什么,你可以:
导航到http://www.ddbst.com/unifacga.html
选择选项no。4 (DDB搜索)
输入例如174作为ddb号并提交。
现在您应该可以看到一个"只有一个水选项。
如何返回选项值?
我已经测试过了,它可以工作!
var casper = require('casper').create({verbose: true,logLevel: "debug"});
casper.start('http://www.ddbst.com/unifacga.html',function(){
this.withFrame('ircframe',function(){
this.click('input[id="ID4"]');
this.wait(0,function(){
this.fillSelectors('form[name="opeform"]', {'input[name="ddbnumber"]': '155'},false);
});
this.wait(0,function(){this.click('input[name="search_ddbnum"]');});
this.wait(0,function(){
var i,o=this.fetchText('select[name="complist"]');
console.log("The value is: "+o)
});
});
});
casper.then(function(){this.capture('test.png');});
casper.run();
你可以用:./casperjs --web-security=no test.js >>/dev/stdout
casper.evaluate
在沙盒内执行javascript。您必须专门从该函数返回数据,因为在那里创建的变量将不存在于主脚本中。正确的实现:
/// MAIN SCRIPT CONTEXT
casper.then(function(){
// Value which is returned from sandbox must be saved in some local variable
var localOptions = this.evaluate(function(){
// SANDBOX CONTEXT -------------------------------
// Dont return objects. Return arrays, strings, numbers
var options = [];
options = [].map.call(document.querySelectorAll('select[name="complist"] option'), function(option){
return option.innerText;
});
// You have to return scraped data back to the outer script
return options;
// END OF SANDBOX CONTEXT -----------------------
});
console.log(">>> " + localOptions);
// just "options" array does not exist here
});
相关文章:
- 使用此选项选择父类内部的类
- 更新:仅根据单选按钮和所选选项选择特定项目
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- ng-单击在IE中不起作用的选项选择Angularjs
- 从选项选择中删除值
- On为<选项>选择等效项
- 用户界面先前选择的选项选择更改
- 使用ng重复或ng选项和删除空白选项选择长方体角度
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 输入:选中,选项:选择选择器
- 根据使用angularjs从下拉菜单中选择的选项选择适当的复选框
- 如何根据 html 中的选项/选择重定向用户(单击按钮后)
- 使用ng选项选择中的ng选项进行过滤器下拉列表
- 如何设置选项选择的值
- 如何搜索长下拉选项/选择列表
- jQuery - 根据下拉选项选择列出结果
- 从选项选择单击时打开 2 个 URL
- 在 Angular JS 中为 ng 选项选择默认值
- 下拉选项选择的操作
- 通过单击单选按钮清除所有选项选择条目