2017-08-23 10 views
1

セレンを使ってすべてのネットワークリクエストを取得したいと思います。このソリューションを見つける方法はありません。誰でも私に提案したり、セレンを使用してネットワークリクエストを取得する方法

Network Request

+0

あなたはこのを探しています。https://www.openhub。 net/p/selenium-profiler? –

+0

別の方法 - 高速検索ですべてのネットワーク活動をキャプチャするためにプロキシを使用して、私はこれを発見しました:https://github.com/lightbody/browsermob-proxy –

答えて

2

丁度のdevのツールで開くが、いくつかのネットワーク、パフォーマンスおよびその他の結果が見つかりません。

はいあなたはJavascriptExecutorを使用して

コードは以下の通りであることを行うことができます -

ChromeOptions options = new ChromeOptions(); 
options.addArguments("start-maximized"); 
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
WebDriver driver = new ChromeDriver(capabilities); 
driver.get("http://www.google.com"); 
String scriptToExecute = "var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var network = performance.getEntries() || {}; return network;"; 
String netData = ((JavascriptExecutor)driver).executeScript(scriptToExecute).toString(); 
System.out.println(netData); 

OR

DesiredCapabilities d = DesiredCapabilities.chrome(); 
LoggingPreferences logPrefs = new LoggingPreferences(); 
logPrefs.enable(LogType.PERFORMANCE, Level.ALL); 
d.setCapability(CapabilityType.LOGGING_PREFS, logPrefs); 
WebDriver driver = new ChromeDriver(d); 
driver.get("https://www.google.co.in/"); 
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
LogEntries les = driver.manage().logs().get(LogType.PERFORMANCE); 
for (LogEntry le : les) { 
    System.out.println(le.getMessage()); 
} 

最初のコードretrunネットワークreturn network;"このためには、タグをJS。あなたは2番目のコードの戻りが

をperfromance

を必要としないエンティティのJSコードを削除することができ、それはあなたを助けることを願っています:)

関連する問題