1
這是我的代碼, 具有相同選擇器的waitForSelector在動態dom操作之前工作正常。不知道這是否是一個錯誤。casper.waitForSelector不適用於動態DOM操作
casper.start("http://www.collierscanada.com/en/Properties?t=2")
# works here
casper.waitForSelector('#propertiesListView')
# changing the number of results displayed per page
casper.click('#dk_container_main_0_results_propResultsPerPage > a > span.dk_arrow > span') casper.waitForSelector('#dk_container_main_0_results_propResultsPerPage.dk_open')
casper.click('#dk_container_main_0_results_propResultsPerPage > div > ul > li:nth-child(6) > a')
# same selector does not work here
# some dynamic dom manipulation is happening in between
casper.waitForSelector('#propertiesListView')
錯誤
[warning] [phantom] Casper.waitFor() timeout
[error] [phantom] Wait timeout of 15000ms expired, exiting
您目前擁有兩個'waitForSelector'沒有任何之間。它不可能是元素消失。你可能想用'casper.thenClick()'來代替,因爲'casper.click()'立即執行,並且會拋出一個錯誤。請讓你的問題更清楚。 – 2015-03-25 12:38:56
@ArtjomB。點擊立即執行,並更改頁面中的組件。我通過截圖驗證了這一點。並且會發生什麼是一些組件被替換的dom是我相信的。在此之後,相同的waitForSelector失敗。如果我轉儲HTML我可以看到組件 – vumaasha 2015-03-25 13:30:34
@ArtjomB。然後使用它的工作。我似乎沒有區別。點擊下拉列表後,我希望等到結果出現後,爲什麼會起作用。我有點困惑什麼時候使用,何時不使用 – vumaasha 2015-03-25 15:56:25