-
-
Save sahajamit/c2d6827736f2b267a8d08c41e559ad24 to your computer and use it in GitHub Desktop.
package com.sahajamit.selenium.ws; | |
import org.json.JSONObject; | |
import org.openqa.selenium.WebDriver; | |
import org.openqa.selenium.chrome.ChromeDriver; | |
import org.openqa.selenium.logging.LogEntries; | |
import org.openqa.selenium.logging.LogType; | |
import org.openqa.selenium.logging.LoggingPreferences; | |
import org.openqa.selenium.remote.CapabilityType; | |
import org.openqa.selenium.remote.DesiredCapabilities; | |
import java.util.logging.Level; | |
/** | |
* Created by amitrawat on 23/9/17. | |
*/ | |
public class CaptureWSMessages { | |
private static WebDriver driver; | |
public static void main(String[] args) throws InterruptedException { | |
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver"); | |
LoggingPreferences loggingprefs = new LoggingPreferences(); | |
loggingprefs.enable(LogType.PERFORMANCE, Level.ALL); | |
DesiredCapabilities cap = new DesiredCapabilities().chrome(); | |
cap.setCapability(CapabilityType.LOGGING_PREFS, loggingprefs); | |
driver = new ChromeDriver(cap); | |
driver.navigate().to("https://web-demo.adaptivecluster.com/"); | |
Thread.sleep(5000); | |
LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE); | |
driver.close(); | |
driver.quit(); | |
logEntries.forEach(entry->{ | |
JSONObject messageJSON = new JSONObject(entry.getMessage()); | |
String method = messageJSON.getJSONObject("message").getString("method"); | |
if(method.equalsIgnoreCase("Network.webSocketFrameSent")){ | |
System.out.println("Message Sent: " + messageJSON.getJSONObject("message").getJSONObject("params").getJSONObject("response").getString("payloadData")); | |
}else if(method.equalsIgnoreCase("Network.webSocketFrameReceived")){ | |
System.out.println("Message Received: " + messageJSON.getJSONObject("message").getJSONObject("params").getJSONObject("response").getString("payloadData")); | |
} | |
}); | |
} | |
} |
Use this code!
**System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "drivers" + File.separator + "chromedriver.exe");
LoggingPreferences loggingprefs = new LoggingPreferences();
loggingprefs.enable(LogType.PERFORMANCE, Level.ALL);
ChromeOptions options = new ChromeOptions();
options.setCapability("goog:loggingPrefs", loggingprefs);
options.addArguments("--enable-devtools-experiments", "--force-devtools-available", "--debug-devtools");
ChromeDriver chromeDriver = new ChromeDriver(options);
DevTools devTools = chromeDriver.getDevTools();
devTools.createSession();
devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));`
devTools.addListener(Network.webSocketFrameSent(), webSocketFrameSent -> printData(webSocketFrameSent));
devTools.addListener(Network.webSocketFrameReceived(), webSocketFrameReceived -> printData(webSocketFrameReceived));**
Hi gerardnorton, Im new to coding and have not learned javascript yet. How to do I translate the same thing to python for selenium without using any external web proxy library
@sahajamit
How to translate this to using in Python?
@sahajamit
Would you be able to help me translate this into C#?
Do not get the Network Websocket message on the remote webdriver. Are there any configurations that we need to set to get the messages on remote webdriver?