2017-04-26 152 views
0

我最近一直在與NightmareJS合作,我現在有一個問題。似乎每當我嘗試使用夢魘裝載一個頁面並等待選擇器存在時,它都掛在goto調用上。我有下面的代碼,打印到控制檯的唯一東西是「加載」。噩夢掛在goto()

nm = new Nightmare({show: false}); 

console.log("loading"); 

nm.goto("https://www.google.com") 

.then(() => { 
    return nm.wait(".gbqfba") 
    .then(() => { 
    console.log("search bar loaded, showing browser"); 
    nm.show(); 
    }) 
    .catch((err) => { 
    console.log(err.toString()); 
    }) 
}) 
.catch(error => console.log('An error occurred:', error)); 

(類「gbqfba」是搜索欄,我等待,所以我知道了吧裝載的隱蔽部分)

+0

你確定它是'goto'而不是'wait'嗎?也許一個控制檯立即登錄goto的'then'會清楚嗎?因爲從我看到的,gbqfba不是一個類,而是一個ID(所以需要#而不是)。 – Vasan

+0

@Vasan我嘗試了你的建議,它沒有記錄任何東西。我從中得到的只是一個這樣的窗口:http://prntscr.com/f18qnl。另外,正如我所看到的,我指的是實際上是一個類的元素,但如果我錯了,請糾正我的錯誤:http://prntscr.com/f18nl1 – Cameron

回答

0

nightmare.show()不再是一個功能,你需要initialize.To視圖噩夢的渲染器窗口中進行設置,您需要通過

var nightmare = Nightmare({ show: true }); 

此外,您還可以打開開發者工具,這樣你可以手動檢查是否document.querySelector(「gbqfba。」);工作中。

var nightmare = Nightmare({ 
    openDevTools: true, 
    show: true 
});