2016-02-19 35 views
0

我目前有一個腳本,它選中頁面上的每個複選框,然後提交表單。每個複選框都在頁面上的多個div下。如何獲取ID到CasperJS頁面上的每個複選框

我目前不得不坐下來爲一個頁面上的幾百個複選框手動獲取每個選擇器3個小時。然後我就

this.click('selector'); 

你可以想象創建一個週期性的名單,我的劇本是非常龐大的,漂亮實用。

有沒有什麼辦法可以取得每個可見的<input>的ID與type="checkbox"

我只想獲取頁面上可見的ID並點擊它們中的每一個。

回答

0

如果複選框有id屬性,那麼它是相當容易casper.getElementsAttribute(selector, attributeName)

var ids = casper.getElementsAttribute('input[type="checkbox"][id]', 'id'); 

的CSS選擇器的工作原理如下:

  • input[type="checkbox"]比賽具有的「類型的所有input元素複選框「和
  • [id]進一步限制選擇所有具有id屬性的元素et(檢索沒有這些元素的id屬性沒有意義)。
+0

這很適合查看id :)我得到一個像這樣id1,id2,id3,id4等id的列表我如何提取每個和使用它在casper.click comman? –

+0

這是一個正常的數組。您可以遍歷該數組並使用每個這些ID來單擊這些元素。問題是你是否希望在每次點擊之間重新加載頁面,或者是否可以逐個點擊所有頁面並提交表單一次。如果它是前者,那麼你顯然需要描述頁面的行爲方式以及你想要達到的目標。 –

+0

可以向我展示一個例子,我想點擊所有接下來的 –