簡體   English   中英

如何以編程方式從網絡選項卡捕獲查詢字符串參數

[英]How to capture query string parameters from network tab programmatically

我正在嘗試使用javascript捕獲查詢字符串參數以進行分析。 我做了一些搜索,發現BMP可以用來做,但我找不到足夠的例子來實現。 任何人都可以指出我正確的方向。

編輯1:我使用下面的代碼使用browsermob-proxy來獲取har文件,但是我得到ERROR: browsermob-proxy returned error當我運行它時, ERROR: browsermob-proxy returned error 我用硒。

getHarFile() {
        const proxy = browsermb.Proxy;
        const pr = new proxy({host:"0.0.0.0",port:4444});
        pr.doHAR("http://www.cnn.com/", (err,data) => {
            if (err) {
                logger.debug('ERROR: ' + err);
            } else {
                fs.writeFileSync('ua.com.har', data, 'utf8');
                logger.debug("#HAR CREATED#");
            }
        })
    }

在此輸入圖像描述

我的建議是為Google Chrome創建個人擴展程序,並開發一個擴展程序,您可以訪問控制台中默認情況下不可用的其他api。 例如,您將擁有此對象以檢查網絡選項卡:

chrome.devtools.network

這里有兩個有用的鏈接:

https://developer.chrome.com/extensions/devtools

https://developer.chrome.com/extensions/devtools_network

我希望它有所幫助

因為我不太確定你的范圍,我會給你一些想法:

1.修復browsermob-proxy

您應該更改browsermob-proxy的主機和代理。 將主機更改為127.0.0.1並使用任意隨機數更改端口(4444確定)。 然后,通過更改瀏覽器設置,確保您的瀏覽器在該主機和代理中運行。

2.使用普通的javascript

2.1獲取當前頁面查詢字符串

您可以使用location.search獲取查詢字符串。 如果您正在使用一些帶有selenium的BDD框架,則可以執行javascript代碼並檢索結果。 您應該始終在代碼中添加一個return ,以便在BDD測試中收到響應。

2.2使用Performance API

您可以訪問性能API中的所有網絡信息。 如果您需要獲取當前頁面URL,可以使用以下代碼:

performance.getEntriesByType("navigation")

這將返回所有當前導航事件和信息。

如果您想獲得該頁面所做的調用的一些信息,您可以使用以下方式訪問它:

performance.getEntriesByType("resource")

這將返回您網站的所有通話。 您必須循環搜索要查找的資源。


在所有方面,都無法像在網絡選項卡中那樣獲取查詢字符串的值和鍵。 您必須使用函數手動分隔它,您可以使用此處提供的代碼來獲取密鑰的值。

我終於能夠使用chrome控制台上提供的s對象來完成它。 帶有編碼查詢字符串的url在chrome控制台中可用作s.rb對象。 我剛解碼它並提取了查詢字符串參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM