-
-
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")); | |
} | |
}); | |
} | |
} |
I am not able to print all msg in websocket frame
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?
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#?
Hi!
Your code is awesome!
but, How can i send websocket message?