我正在研究一個框架,我想支持phantomjs。有沒有辦法來檢查頁面JavaScript是否在phantomjs或karma + phantomjs下運行?我只用karma + phantomjs進行測試,但我沒有找到任何可用於檢查環境的全局變量。我認爲會有一個global.phantom變量或類似的東西。這些環境有沒有區別?有沒有辦法檢查我的腳本是否在phantomjs中運行?
回答
根據這篇文章:http://laputa.io/blog/2014/10/24/using-karma/ Karma運行在iframe中,因此phantomjs變量不存在於此iframe中。所以我們所要做的就是通過業力關閉iframe。要做到這一點,我們必須使用以下設置:
config.set({
client: {
useIframe: false
}
});
現在,我們可以簡單地使用!!window._phantom
或!!window.callPhantom
檢查幻象是否存在。但這是一個部分解決方案。我仍在尋找更好的,甚至可以在iframe中看到幻影。
我結束了這樣的代碼:
var global = (function() {
return this;
})();
var phantom = global._phantom;
if (!phantom && global.__karma__ && global.frameElement)
phantom = global.parent._phantom;
var isPhantom = !!phantom;
這是通過雙方的iframe和非噶的iframe,我想它的工作原理是香草phantomjs爲好。
設置'useIframe:false'之前不是'!! window.callPhantom == true'? –
@ ArtjomB。它是'未定義的'。其實這個屬性並不存在,所以它沒有被定義,而不是'undefined'。 :d – inf3rno
- 1. 有沒有辦法檢查腳本是否由PowerShell ISE運行?
- 2. 有沒有辦法檢查子進程是否仍在運行?
- 3. 有沒有辦法檢查代碼是否在TransactionScope中執行?
- 4. 有沒有辦法檢查我的代理是否在線?
- 5. 有沒有辦法檢查一個函數是否正在jQuery中運行?
- 6. 有沒有辦法檢測我是否在文本上懸停?
- 7. 有沒有辦法檢查回發是否正在進行?
- 8. 有沒有辦法檢查SQL SP是否正在運行或完成?
- 9. 有沒有辦法檢查ansicon.exe是否存在,而不使用CMake運行它?
- 10. 有沒有辦法檢查Django管理命令是否正在運行?
- 11. 有沒有辦法檢查是否有其他程序全屏運行
- 12. 有沒有辦法知道R腳本是直接運行還是在另一個腳本中運行?
- 13. 有沒有辦法在.NET中檢查Bitmap是否爲空?
- 14. 有沒有辦法檢查我是否在與Guice的servlet請求中?
- 15. 有沒有辦法在iOS上運行腳本?
- 16. 有沒有辦法從powershell腳本運行可執行文件?
- 17. 可可 - 有沒有辦法檢查NSURLConnection是否存在緩存?
- 18. 有沒有辦法檢查Generic類是否存在字段?
- 19. 有沒有辦法檢查文件是否在使用
- 20. 有沒有辦法檢查連接標識是否存在?
- 21. WordPress的:有沒有辦法從PHP腳本運行cli命令?
- 22. 有沒有辦法從別處的目錄運行SL4A腳本?
- 23. 有沒有辦法在沒有CLI的情況下運行nodejs腳本?
- 24. 有沒有辦法在多個Python版本的Atom中運行Python腳本?
- 25. 有沒有辦法檢查(文件)句柄是否有效?
- 26. 有沒有辦法檢查.NET線程池中運行的是什麼?
- 27. 有沒有辦法檢查Spark中的變量是否可並行化?
- 28. 有沒有辦法從網站運行python腳本?
- 29. 有沒有辦法讓SikuliX腳本自動運行?
- 30. 有沒有辦法在chutzpah中執行phantomJS語句?
[此問題](http://stackoverflow.com/a/24471222/13226)和[此問題](http://stackoverflow.com/questions/26186101/how-to-skip-the-code-從phantomjs-or-grover執行)可能會幫助 – ebo
@ebo Nope,但我找到了一個解決方案。 :-) http://laputa.io/blog/2014/10/24/using-karma/ – inf3rno
@ArtjomB。是。 ------------------------ – inf3rno