我使用下面的代碼,它使用了imagesLoaded包回調告訴我,當與特定csspath元素已加載完所有圖片:水豚,騷靈,PhantomJS,evaluate_script,回調
imagesLoadedScript = "imagesLoaded('#{csspath}', { background: true }, function(message) { console.log('PHANTOM CLIENT REPORTING: #{csspath} Images Loaded'); return message; })"
imagesLoadedScript = imagesLoadedScript.strip.gsub(/\s+/,' ')
@session.evaluate_script(imagesLoadedScript)
console.log語句在調試時檢查PhantomJS日誌時表明,在進入下一個語句之前,Capybara/Poltergiest並未等待圖像加載,如預期那樣。我也不能根據需要從回調內部返回真實(或錯誤)的值。
水豚用
{"command_id":"678f1e2e-4820-4631-8cd6-413ce6f4b66f","response":"(cyclic structure)"}
任何迴應有關於如何從回調內部,通過evaluate_script執行的函數返回一個值的任何想法?
非常感謝。
謝謝托馬斯我張貼我的解決方案上面。花了我一段時間才意識到我正在嘗試做一些不可能的事情。 – Tom
@Tom這也會起作用 - 你也可以做一些事情,比如向html/body元素中添加一個類,而不是在頁面中插入新元素(如果你用'n - 兒童選擇器等)。 –
@Tom - 僅供參考,Capybara可能會在其下一個版本中支持這個用例 - https://github.com/teamcapybara/capybara/pull/1927 - 不知道Poltergeist能支持它多久 –