Javascript 如何在CasperJS中获取页面上每个复选框的id

Javascript 如何在CasperJS中获取页面上每个复选框的id,javascript,checkbox,css-selectors,phantomjs,casperjs,Javascript,Checkbox,Css Selectors,Phantomjs,Casperjs,我目前有一个脚本,它选中页面上的每个复选框,然后提交表单。每个复选框都位于页面上的多个div下 目前,我必须坐上3个小时,手动获取页面上几百个复选框的每个选择器。然后我在上创建一个定期列表 this.click('selector'); 你可以想象,我的脚本非常庞大,非常不实用 是否有任何方法可以通过type=“checkbox”获取每个可见的id 我只想获取页面上可见的id,然后单击每个id。如果复选框具有id属性,则使用以下选项相当容易: CSS选择器的工作原理如下: input[typ

我目前有一个脚本,它选中页面上的每个复选框,然后提交表单。每个复选框都位于页面上的多个div下

目前,我必须坐上3个小时,手动获取页面上几百个复选框的每个选择器。然后我在上创建一个定期列表

this.click('selector');
你可以想象,我的脚本非常庞大,非常不实用

是否有任何方法可以通过
type=“checkbox”
获取每个可见
的id


我只想获取页面上可见的id,然后单击每个id。

如果复选框具有
id
属性,则使用以下选项相当容易:

CSS选择器的工作原理如下:

  • input[type=“checkbox”]
    匹配所有具有“checkbox”类型的
    input
    元素,并且
  • [id]
    进一步将选择限制在所有具有
    id
    属性集的元素上(检索不具有这些属性的元素的
    id
    属性是没有意义的)
这对查看id很有效:)我得到了一个id列表,如id1、id2、id3、id4等。如何提取每个id并在casper中使用。单击comman?这是一个普通数组。您可以迭代该数组并使用每个ID来单击元素。问题是您是否希望在每次单击之间重新加载页面,或者是否可以逐个单击所有页面并提交表单一次。如果是前者,那么你显然需要描述页面的行为以及你想要实现的目标。你能给我举一个我想在另一个页面上点击全部的例子吗?不,我不能,因为我不知道你是如何加载当前页面的,它是否是动态的,以及你是否可以只使用
casper.back()
。请添加更多信息。
var ids = casper.getElementsAttribute('input[type="checkbox"][id]', 'id');