如何传递选择器ID's作为变量通过casperjs传递给JQuery
How can I pass selector ID's as variables to JQuery through casperjs?
我正在casperjs中编写一个scraper,并试图从下拉列表中选择一个值。到目前为止,我发现最好的方法是使用JQuery。但是,如果我将选择器的ID作为变量传递,那么选择器就不会更新,而如果我将其作为字符串传递,则选择器将完全更新。
作品:
var specialtySelector = '#specialitydiv';
casper.evaluate(function () {
$('#specialitydiv').find('select').val('238').change();
});
失败:
var specialtySelector = '#specialitydiv';
casper.evaluate(function () {
$(specialtySelector).find('select').val('238').change();
});
有人能解释为什么在将选择器作为字符串传递成功时传递specialtySelector会失败吗?
这里的问题是CasperJS的evaluate()
独立于脚本的其余部分运行。要解决此问题,需要传递要在evaluate()
内部使用的任何变量。
var specialtySelector = '#specialitydiv';
casper.evaluate(function(sel) {
$(sel).find('select').val('238').change();
}, specialtySelector);
第一个示例之所以有效,是因为您实际上没有使用任何evaluate()
调用不可用的变量。
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- 将多个变量从php传递到casperjs
- 将变量传递到CasperJS中的XPath表达式中
- 如何在CasperJS脚本中通过get-int变量加载JSON
- casperjs单击的不是选择器,而是变量
- 如何传递选择器ID's作为变量通过casperjs传递给JQuery
- 使用casperjs将变量导出为CSV
- 在casperjs中传递变量等参数进行评估并登录到站点
- CasperJS - 基于存储在变量中的值的单击按钮
- 在CasperJS的waitFor()中传递局部变量给evaluate()