How to use getCapabilities method of org.openqa.selenium.grid.data.Session class

Best Selenium code snippet using org.openqa.selenium.grid.data.Session.getCapabilities

Source:GraphqlHandlerTest.java Github

copy

Full Screen

...295 Slot slot = slots.stream().findFirst().get();296 org.openqa.selenium.grid.graphql.Session graphqlSession =297 new org.openqa.selenium.grid.graphql.Session(298 sessionId,299 session.getCapabilities(),300 session.getStartTime(),301 session.getUri(),302 node.getId().toString(),303 node.getUri(),304 slot);305 String query = String.format(306 "{ session (id: \"%s\") { id, capabilities, startTime, uri } }", sessionId);307 GraphqlHandler handler = new GraphqlHandler(tracer, distributor, queue, publicUri, version);308 Map<String, Object> result = executeQuery(handler, query);309 assertThat(result).describedAs(result.toString()).isEqualTo(310 singletonMap(311 "data", singletonMap(312 "session", ImmutableMap.of(313 "id", sessionId,314 "capabilities", graphqlSession.getCapabilities(),315 "startTime", graphqlSession.getStartTime(),316 "uri", graphqlSession.getUri().toString()))));317 } else {318 fail("Session creation failed", response.left());319 }320 }321 @Test322 public void shouldBeAbleToGetNodeInfoForSession() throws URISyntaxException {323 String nodeUrl = "http://localhost:5556";324 URI nodeUri = new URI(nodeUrl);325 Node node = LocalNode.builder(tracer, events, nodeUri, publicUri, registrationSecret)326 .add(caps, new TestSessionFactory((id, caps) -> new org.openqa.selenium.grid.data.Session(327 id,328 nodeUri,329 stereotype,330 caps,331 Instant.now()))).build();332 distributor.add(node);333 wait.until(obj -> distributor.getStatus().hasCapacity());334 Either<SessionNotCreatedException, CreateSessionResponse> response = distributor.newSession(sessionRequest);335 if (response.isRight()) {336 Session session = response.right().getSession();337 assertThat(session).isNotNull();338 String sessionId = session.getId().toString();339 Set<Slot> slots = distributor.getStatus().getNodes().stream().findFirst().get().getSlots();340 Slot slot = slots.stream().findFirst().get();341 org.openqa.selenium.grid.graphql.Session graphqlSession =342 new org.openqa.selenium.grid.graphql.Session(343 sessionId,344 session.getCapabilities(),345 session.getStartTime(),346 session.getUri(),347 node.getId().toString(),348 node.getUri(),349 slot);350 String query = String.format("{ session (id: \"%s\") { nodeId, nodeUri } }", sessionId);351 GraphqlHandler handler = new GraphqlHandler(tracer, distributor, queue, publicUri, version);352 Map<String, Object> result = executeQuery(handler, query);353 assertThat(result).describedAs(result.toString()).isEqualTo(354 singletonMap(355 "data", singletonMap(356 "session", ImmutableMap.of(357 "nodeId", graphqlSession.getNodeId(),358 "nodeUri", graphqlSession.getNodeUri().toString()))));359 } else {360 fail("Session creation failed", response.left());361 }362 }363 @Test364 public void shouldBeAbleToGetSlotInfoForSession() throws URISyntaxException {365 String nodeUrl = "http://localhost:5556";366 URI nodeUri = new URI(nodeUrl);367 Node node = LocalNode.builder(tracer, events, nodeUri, publicUri, registrationSecret)368 .add(caps, new TestSessionFactory((id, caps) -> new org.openqa.selenium.grid.data.Session(369 id,370 nodeUri,371 stereotype,372 caps,373 Instant.now()))).build();374 distributor.add(node);375 wait.until(obj -> distributor.getStatus().hasCapacity());376 Either<SessionNotCreatedException, CreateSessionResponse> response = distributor.newSession(sessionRequest);377 if (response.isRight()) {378 Session session = response.right().getSession();379 assertThat(session).isNotNull();380 String sessionId = session.getId().toString();381 Set<Slot> slots = distributor.getStatus().getNodes().stream().findFirst().get().getSlots();382 Slot slot = slots.stream().findFirst().get();383 org.openqa.selenium.grid.graphql.Session graphqlSession =384 new org.openqa.selenium.grid.graphql.Session(385 sessionId,386 session.getCapabilities(),387 session.getStartTime(),388 session.getUri(),389 node.getId().toString(),390 node.getUri(),391 slot);392 org.openqa.selenium.grid.graphql.Slot graphqlSlot = graphqlSession.getSlot();393 String query = String.format(394 "{ session (id: \"%s\") { slot { id, stereotype, lastStarted } } }", sessionId);395 GraphqlHandler handler = new GraphqlHandler(tracer, distributor, queue, publicUri, version);396 Map<String, Object> result = executeQuery(handler, query);397 assertThat(result).describedAs(result.toString()).isEqualTo(398 singletonMap(399 "data", singletonMap(400 "session", singletonMap(...

Full Screen

Full Screen

Source:LocalNode.java Github

copy

Full Screen

...183 attributeMap184 .put(AttributeKey.LOGGER_CLASS.getKey(), EventAttribute.setValue(getClass().getName()));185 LOG.fine("Creating new session using span: " + span);186 attributeMap.put("session.request.capabilities",187 EventAttribute.setValue(sessionRequest.getCapabilities().toString()));188 attributeMap.put("session.request.downstreamdialect",189 EventAttribute.setValue(sessionRequest.getDownstreamDialects().toString()));190 int currentSessionCount = getCurrentSessionCount();191 span.setAttribute("current.session.count", currentSessionCount);192 attributeMap.put("current.session.count", EventAttribute.setValue(currentSessionCount));193 if (getCurrentSessionCount() >= maxSessionCount) {194 span.setAttribute("error", true);195 span.setStatus(Status.RESOURCE_EXHAUSTED);196 attributeMap.put("max.session.count", EventAttribute.setValue(maxSessionCount));197 span.addEvent("Max session count reached", attributeMap);198 return Optional.empty();199 }200 if (isDraining()) {201 span.setStatus(Status.UNAVAILABLE.withDescription("The node is draining. Cannot accept new sessions."));202 return Optional.empty();203 }204 // Identify possible slots to use as quickly as possible to enable concurrent session starting205 SessionSlot slotToUse = null;206 synchronized(factories) {207 for (SessionSlot factory : factories) {208 if (!factory.isAvailable() || !factory.test(sessionRequest.getCapabilities())) {209 continue;210 }211 factory.reserve();212 slotToUse = factory;213 break;214 }215 }216 if (slotToUse == null) {217 span.setAttribute("error", true);218 span.setStatus(Status.NOT_FOUND);219 span.addEvent("No slot matched capabilities ", attributeMap);220 return Optional.empty();221 }222 Optional<ActiveSession> possibleSession = slotToUse.apply(sessionRequest);223 if (!possibleSession.isPresent()) {224 slotToUse.release();225 span.setAttribute("error", true);226 span.setStatus(Status.NOT_FOUND);227 span.addEvent("No slots available for capabilities ", attributeMap);228 return Optional.empty();229 }230 ActiveSession session = possibleSession.get();231 currentSessions.put(session.getId(), slotToUse);232 SessionId sessionId = session.getId();233 Capabilities caps = session.getCapabilities();234 SESSION_ID.accept(span, sessionId);235 CAPABILITIES.accept(span, caps);236 String downstream = session.getDownstreamDialect().toString();237 String upstream = session.getUpstreamDialect().toString();238 String sessionUri = session.getUri().toString();239 span.setAttribute(AttributeKey.DOWNSTREAM_DIALECT.getKey(), downstream);240 span.setAttribute(AttributeKey.UPSTREAM_DIALECT.getKey(), upstream);241 span.setAttribute(AttributeKey.SESSION_URI.getKey(), sessionUri);242 // The session we return has to look like it came from the node, since we might be dealing243 // with a webdriver implementation that only accepts connections from localhost244 Session externalSession = createExternalSession(session, externalUri);245 return Optional.of(new CreateSessionResponse(246 externalSession,247 getEncoder(session.getDownstreamDialect()).apply(externalSession)));248 }249 }250 @Override251 public boolean isSessionOwner(SessionId id) {252 Require.nonNull("Session ID", id);253 return currentSessions.getIfPresent(id) != null;254 }255 @Override256 public Session getSession(SessionId id) throws NoSuchSessionException {257 Require.nonNull("Session ID", id);258 SessionSlot slot = currentSessions.getIfPresent(id);259 if (slot == null) {260 throw new NoSuchSessionException("Cannot find session with id: " + id);261 }262 return createExternalSession(slot.getSession(), externalUri);263 }264 @Override265 public TemporaryFilesystem getTemporaryFilesystem(SessionId id) throws IOException {266 try {267 return tempFileSystems.get(id, () -> TemporaryFilesystem.getTmpFsBasedOn(268 TemporaryFilesystem.getDefaultTmpFS().createTempDir("session", id.toString())));269 } catch (ExecutionException e) {270 throw new IOException(e);271 }272 }273 @Override274 public HttpResponse executeWebDriverCommand(HttpRequest req) {275 // True enough to be good enough276 SessionId id = getSessionId(req.getUri()).map(SessionId::new)277 .orElseThrow(() -> new NoSuchSessionException("Cannot find session: " + req));278 SessionSlot slot = currentSessions.getIfPresent(id);279 if (slot == null) {280 throw new NoSuchSessionException("Cannot find session with id: " + id);281 }282 HttpResponse toReturn = slot.execute(req);283 if (req.getMethod() == DELETE && req.getUri().equals("/session/" + id)) {284 stop(id);285 }286 return toReturn;287 }288 @Override289 public HttpResponse uploadFile(HttpRequest req, SessionId id) {290 Map<String, Object> incoming = JSON.toType(string(req), Json.MAP_TYPE);291 File tempDir;292 try {293 TemporaryFilesystem tempfs = getTemporaryFilesystem(id);294 tempDir = tempfs.createTempDir("upload", "file");295 Zip.unzip((String) incoming.get("file"), tempDir);296 } catch (IOException e) {297 throw new UncheckedIOException(e);298 }299 // Select the first file300 File[] allFiles = tempDir.listFiles();301 if (allFiles == null) {302 throw new WebDriverException(303 String.format("Cannot access temporary directory for uploaded files %s", tempDir));304 }305 if (allFiles.length != 1) {306 throw new WebDriverException(307 String.format("Expected there to be only 1 file. There were: %s", allFiles.length));308 }309 ImmutableMap<String, Object> result = ImmutableMap.of(310 "value", allFiles[0].getAbsolutePath());311 return new HttpResponse().setContent(asJson(result));312 }313 @Override314 public void stop(SessionId id) throws NoSuchSessionException {315 Require.nonNull("Session ID", id);316 SessionSlot slot = currentSessions.getIfPresent(id);317 if (slot == null) {318 throw new NoSuchSessionException("Cannot find session with id: " + id);319 }320 killSession(slot);321 tempFileSystems.invalidate(id);322 }323 private Session createExternalSession(ActiveSession other, URI externalUri) {324 Capabilities toUse = ImmutableCapabilities.copyOf(other.getCapabilities());325 // Rewrite the se:options if necessary326 Object rawSeleniumOptions = other.getCapabilities().getCapability("se:options");327 if (rawSeleniumOptions instanceof Map) {328 @SuppressWarnings("unchecked") Map<String, Object> original = (Map<String, Object>) rawSeleniumOptions;329 Map<String, Object> updated = new TreeMap<>(original);330 String cdpPath = String.format("/session/%s/se/cdp", other.getId());331 updated.put("cdp", rewrite(cdpPath));332 toUse = new PersistentCapabilities(toUse).setCapability("se:options", updated);333 }334 return new Session(other.getId(), externalUri, other.getStereotype(), toUse, Instant.now());335 }336 private URI rewrite(String path) {337 try {338 return new URI(339 gridUri.getScheme(),340 gridUri.getUserInfo(),341 gridUri.getHost(),342 gridUri.getPort(),343 path,344 null,345 null);346 } catch (URISyntaxException e) {347 throw new RuntimeException(e);348 }349 }350 private void killSession(SessionSlot slot) {351 currentSessions.invalidate(slot.getSession().getId());352 // Attempt to stop the session353 if (!slot.isAvailable()) {354 slot.stop();355 }356 }357 @Override358 public NodeStatus getStatus() {359 Set<Slot> slots = factories.stream()360 .map(slot -> {361 Optional<Session> session = Optional.empty();362 if (!slot.isAvailable()) {363 ActiveSession activeSession = slot.getSession();364 session = Optional.of(365 new Session(366 activeSession.getId(),367 activeSession.getUri(),368 slot.getStereotype(),369 activeSession.getCapabilities(),370 activeSession.getStartTime()));371 }372 return new Slot(373 new SlotId(getId(), slot.getId()),374 slot.getStereotype(),375 Instant.EPOCH,376 session);377 })378 .collect(toImmutableSet());379 return new NodeStatus(380 getId(),381 externalUri,382 maxSessionCount,383 slots,...

Full Screen

Full Screen

Source:OneShotNode.java Github

copy

Full Screen

...137 public Optional<CreateSessionResponse> newSession(CreateSessionRequest sessionRequest) {138 if (driver != null) {139 throw new IllegalStateException("Only expected one session at a time");140 }141 Optional<WebDriver> driver = driverInfo.createDriver(sessionRequest.getCapabilities());142 if (!driver.isPresent()) {143 return Optional.empty();144 }145 if (!(driver.get() instanceof RemoteWebDriver)) {146 driver.get().quit();147 return Optional.empty();148 }149 this.driver = (RemoteWebDriver) driver.get();150 this.sessionId = this.driver.getSessionId();151 this.client = extractHttpClient(this.driver);152 this.capabilities = rewriteCapabilities(this.driver);153 this.sessionStart = Instant.now();154 LOG.info("Encoded response: " + JSON.toJson(ImmutableMap.of(155 "value", ImmutableMap.of(156 "sessionId", sessionId,157 "capabilities", capabilities))));158 events.fire(new NodeDrainStarted(getId()));159 return Optional.of(160 new CreateSessionResponse(161 getSession(sessionId),162 JSON.toJson(ImmutableMap.of(163 "value", ImmutableMap.of(164 "sessionId", sessionId,165 "capabilities", capabilities))).getBytes(UTF_8)));166 }167 private HttpClient extractHttpClient(RemoteWebDriver driver) {168 CommandExecutor executor = driver.getCommandExecutor();169 try {170 Field client = null;171 Class<?> current = executor.getClass();172 while (client == null && (current != null || Object.class.equals(current))) {173 client = findClientField(current);174 current = current.getSuperclass();175 }176 if (client == null) {177 throw new IllegalStateException("Unable to find client field in " + executor.getClass());178 }179 if (!HttpClient.class.isAssignableFrom(client.getType())) {180 throw new IllegalStateException("Client field is not assignable to http client");181 }182 client.setAccessible(true);183 return (HttpClient) client.get(executor);184 } catch (ReflectiveOperationException e) {185 throw new IllegalStateException(e);186 }187 }188 private Field findClientField(Class<?> clazz) {189 try {190 return clazz.getDeclaredField("client");191 } catch (NoSuchFieldException e) {192 return null;193 }194 }195 private Capabilities rewriteCapabilities(RemoteWebDriver driver) {196 // Rewrite the se:options if necessary197 Object rawSeleniumOptions = driver.getCapabilities().getCapability("se:options");198 if (rawSeleniumOptions == null || rawSeleniumOptions instanceof Map) {199 @SuppressWarnings("unchecked") Map<String, Object> original = (Map<String, Object>) rawSeleniumOptions;200 Map<String, Object> updated = new TreeMap<>(original == null ? new HashMap<>() : original);201 String cdpPath = String.format("/session/%s/se/cdp", driver.getSessionId());202 updated.put("cdp", rewrite(cdpPath));203 return new PersistentCapabilities(driver.getCapabilities()).setCapability("se:options", updated);204 }205 return ImmutableCapabilities.copyOf(driver.getCapabilities());206 }207 private URI rewrite(String path) {208 try {209 return new URI(210 gridUri.getScheme(),211 gridUri.getUserInfo(),212 gridUri.getHost(),213 gridUri.getPort(),214 path,215 null,216 null);217 } catch (URISyntaxException e) {218 throw new RuntimeException(e);219 }...

Full Screen

Full Screen

Source:AddingNodesTest.java Github

copy

Full Screen

...170 Objects.requireNonNull(sessionRequest);171 if (running != null) {172 return Optional.empty();173 }174 Session session = factory.apply(sessionRequest.getCapabilities());175 running = session;176 return Optional.of(177 new CreateSessionResponse(178 session,179 CapabilityResponseEncoder.getEncoder(W3C).apply(session)));180 }181 @Override182 public void executeWebDriverCommand(HttpRequest req, HttpResponse resp) {183 throw new UnsupportedOperationException("executeWebDriverCommand");184 }185 @Override186 public Session getSession(SessionId id) throws NoSuchSessionException {187 if (running == null || !running.getId().equals(id)) {188 throw new NoSuchSessionException();189 }190 return running;191 }192 @Override193 public void stop(SessionId id) throws NoSuchSessionException {194 getSession(id);195 running = null;196 bus.fire(new SessionClosedEvent(id));197 }198 @Override199 protected boolean isSessionOwner(SessionId id) {200 return running != null && running.getId().equals(id);201 }202 @Override203 public boolean isSupporting(Capabilities capabilities) {204 return Objects.equals("cake", capabilities.getCapability("cheese"));205 }206 @Override207 public NodeStatus getStatus() {208 Set<NodeStatus.Active> actives = new HashSet<>();209 if (running != null) {210 actives.add(new NodeStatus.Active(CAPS, running.getId(), running.getCapabilities()));211 }212 return new NodeStatus(213 getId(),214 getUri(),215 1,216 ImmutableMap.of(CAPS, 1),217 actives);218 }219 @Override220 public HealthCheck getHealthCheck() {221 return () -> new HealthCheck.Result(true, "tl;dr");222 }223 }224}...

Full Screen

Full Screen

Source:LocalSessionMap.java Github

copy

Full Screen

...47 public boolean add(Session session) {48 Objects.requireNonNull(session, "Session has not been set");49 try (Span span = tracer.createSpan("sessionmap.add", tracer.getActiveSpan())) {50 span.addTag("session.id", session.getId());51 span.addTag("session.capabilities", session.getCapabilities());52 span.addTag("session.uri", session.getUri());53 Lock writeLock = lock.writeLock();54 writeLock.lock();55 try {56 knownSessions.put(session.getId(), session);57 } finally {58 writeLock.unlock();59 }60 return true;61 }62 }63 @Override64 public Session get(SessionId id) {65 Objects.requireNonNull(id, "Session ID has not been set");66 try (Span span = tracer.createSpan("sessionmap.get", tracer.getActiveSpan())) {67 span.addTag("session.id", id);68 Lock readLock = lock.readLock();69 readLock.lock();70 try {71 Session session = knownSessions.get(id);72 if (session == null) {73 throw new NoSuchSessionException("Unable to find session with ID: " + id);74 }75 span.addTag("session.capabilities", session.getCapabilities());76 span.addTag("session.uri", session.getUri());77 return session;78 } finally {79 readLock.unlock();80 }81 }82 }83 @Override84 public void remove(SessionId id) {85 Objects.requireNonNull(id, "Session ID has not been set");86 try (Span span = tracer.createSpan("sessionmap.remove", tracer.getActiveSpan())) {87 span.addTag("session.id", id);88 Lock writeLock = lock.writeLock();89 writeLock.lock();...

Full Screen

Full Screen

Source:SessionData.java Github

copy

Full Screen

...42 if (currentSession != null) {43 org.openqa.selenium.grid.data.Session session = currentSession.session;44 return new org.openqa.selenium.grid.graphql.Session(45 session.getId().toString(),46 session.getCapabilities(),47 session.getStartTime(),48 session.getUri(),49 currentSession.node.getId().toString(),50 currentSession.node.getUri(),51 currentSession.slot);52 } else {53 throw new SessionNotFoundException("No ongoing session found with the requested session id.",54 sessionId);55 }56 }57 private SessionInSlot findSession(String sessionId, Set<NodeStatus> nodeStatuses) {58 for (NodeStatus status : nodeStatuses) {59 for (Slot slot : status.getSlots()) {60 Optional<org.openqa.selenium.grid.data.Session> session = slot.getSession();...

Full Screen

Full Screen

Source:Node.java Github

copy

Full Screen

...52 public List<org.openqa.selenium.grid.graphql.Session> getSessions() {53 return activeSessions.stream()54 .map(session -> new org.openqa.selenium.grid.graphql.Session(55 session.getId().toString(),56 session.getCapabilities(),57 session.getStartTime()))58 .collect(ImmutableList.toImmutableList());59 }60 public NodeId getId() {61 return id;62 }63 public URI getUri() {64 return uri;65 }66 public int getMaxSession() {67 return maxSession;68 }69 public List<String> getActiveSessionIds() {70 return activeSessions.stream().map(session -> session.getId().toString())71 .collect(ImmutableList.toImmutableList());72 }73 public String getCapabilities() {74 List<Map<String, Object> > toReturn = new ArrayList<>();75 for (Map.Entry<Capabilities, Integer> entry : capabilities.entrySet()) {76 Map<String, Object> details = new HashMap<>();77 details.put("browserName", entry.getKey().getBrowserName());78 details.put("slots", entry.getValue());79 toReturn.add(details);80 }81 return JSON.toJson(toReturn);82 }83 public Availability getStatus() {84 return status;85 }86}...

Full Screen

Full Screen

Source:TestSessionFactory.java Github

copy

Full Screen

...41 }42 @Override43 public Optional<ActiveSession> apply(CreateSessionRequest sessionRequest) {44 SessionId id = new SessionId(UUID.randomUUID());45 Session session = sessionGenerator.apply(id, sessionRequest.getCapabilities());46 URL url = null;47 try {48 url = session.getUri().toURL();49 } catch (MalformedURLException e) {50 throw new UncheckedIOException(e);51 }52 Dialect downstream = sessionRequest.getDownstreamDialects().contains(W3C) ?53 W3C :54 sessionRequest.getDownstreamDialects().iterator().next();55 BaseActiveSession activeSession = new BaseActiveSession(56 session.getId(),57 url,58 downstream,59 W3C,60 session.getCapabilities()) {61 @Override62 public void stop() {63 // Do nothing64 }65 @Override66 public void execute(HttpRequest req, HttpResponse resp) throws IOException {67 if (session instanceof CommandHandler) {68 ((CommandHandler) session).execute(req, resp);69 } else {70 // Do nothing.71 }72 }73 };74 return Optional.of(activeSession);...

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1import org.openqa.selenium.grid.data.Session2import org.openqa.selenium.grid.web.Routable3import org.openqa.selenium.remote.http.HttpMethod4import org.openqa.selenium.remote.http.HttpRequest5import org.openqa.selenium.remote.http.HttpResponse6class GetCapabilitiesHandler implements Routable {7 HttpResponse execute(HttpRequest req) {8 def caps = Session.getCapabilities()9 def response = new HttpResponse()10 response.setStatus(200)11 response.setContent(caps)12 }13 boolean matches(HttpRequest req) {14 req.getMethod() == HttpMethod.GET &&15 req.getUri().startsWith('/wd/hub/session/')16 }17}18new GetCapabilitiesHandler()

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1import org.openqa.selenium.grid.data.Session;2import org.openqa.selenium.remote.CapabilityType;3import org.openqa.selenium.remote.DesiredCapabilities;4DesiredCapabilities caps = new DesiredCapabilities();5caps.setCapability(CapabilityType.BROWSER_NAME, "chrome");6caps.setCapability(CapabilityType.VERSION, "latest");7caps.setCapability(CapabilityType.PLATFORM_NAME, "Windows 10");8caps.setCapability("sauce:options", sauceOptions);9SessionId sessionId = ((RemoteWebDriver) driver).getSessionId();10Session session = ((RemoteWebDriver) driver).getSessionDetails();11System.out.println(session.getCapabilities().asMap());

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1package com.automation.selenium.grid;2import java.net.URI;3import java.net.URISyntaxException;4import java.util.HashMap;5import java.util.Map;6import org.openqa.selenium.Capabilities;7import org.openqa.selenium.SessionNotCreatedException;8import org.openqa.selenium.grid.data.Session;9import org.openqa.selenium.remote.NewSessionPayload;10import org.openqa.selenium.remote.http.HttpClient;11import org.openqa.selenium.remote.http.HttpMethod;12import org.openqa.selenium.remote.http.HttpRequest;13import org.openqa.selenium.remote.http.HttpResponse;14import org.openqa.selenium.remote.http.W3CHttpCommandCodec;15import org.openqa.selenium.remote.http.W3CHttpResponseCodec;16public class Example7 {17 public static void main(String[] args) throws URISyntaxException {18 Map<String, Object> map = new HashMap<String, Object>();19 map.put("browserName", "chrome");20 map.put("platformName", "windows");21 NewSessionPayload payload = new NewSessionPayload(Capabilities.chrome());22 HttpRequest request = new HttpRequest(HttpMethod.POST, "/session");23 request.setContent(W3CHttpCommandCodec.encode(payload));24 HttpResponse response = client.execute(request);25 Session session = Session.create(new W3CHttpResponseCodec().decode(response));26 System.out.println(session.getCapabilities());27 try {28 client.execute(new HttpRequest(HttpMethod.DELETE, String.format("/session/%s", session.getId())));29 } catch (SessionNotCreatedException e) {30 }31 }32}33{acceptInsecureCerts=true, browserName=chrome, browserVersion=80.0.3987.122, chrome={chromedriverVersion=80.0.3987.106 (2f1c9d9b0d2b2f2b5a6b91f8a1e0d1c1b81bea9c-refs/branch-heads/3987@{#1003}), userDataDir=C:\Users\USER\AppData\Local\Temp\scoped_dir11412_30943}, goog:chromeOptions={debuggerAddress=localhost:61188}, javascriptEnabled=true, networkConnectionEnabled=false, pageLoadStrategy=normal, platformName=windows, platformVersion=10.0, proxy={}, setWindowRect=true, strictFileInteractability=false, timeouts={implicit=0, pageLoad

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1package com.seleniumgrid;2import java.net.MalformedURLException;3import java.net.URL;4import java.util.Map;5import org.openqa.selenium.Capabilities;6import org.openqa.selenium.WebDriver;7import org.openqa.selenium.remote.RemoteWebDriver;8import org.openqa.selenium.remote.SessionId;9public class GetCapabilities {10 public static void main(String[] args) throws MalformedURLException {11 SessionId session = ((RemoteWebDriver) driver).getSessionId();12 Capabilities caps = ((RemoteWebDriver) driver).getCapabilities();13 Map<String, Object> capabilities = ((RemoteWebDriver) driver).getSessionDetail("capabilities");14 System.out.println("Session ID is " + session.toString());15 System.out.println("Browser is " + caps.getBrowserName());16 System.out.println("Platform is " + caps.getPlatform().toString());17 System.out.println("Version is " + caps.getVersion());18 System.out.println("Capabilities are " + capabilities);19 driver.quit();20 }21}22Capabilities are {acceptInsecureCerts=true, browserName=chrome, browserVersion=80.0.3987.106, chrome={chromedriverVersion=80.0.3987.106 (4c8e4d4e1e4d4d8b2a2f1b0f6b9c9e8b8f3a3b3a, 32), userDataDir=C:\Users\ADMINI~1\AppData\Local\Temp\scoped_dir10488_24285}, goog:chromeOptions={debuggerAddress=localhost:50640}, javascriptEnabled=true, networkConnectionEnabled=false, pageLoadStrategy=normal, platform=WINDOWS, platformName=WINDOWS, proxy={}, setWindowRect=true, strictFileInteractability=false, timeouts={implicit=0, pageLoad=300000, script=30000}, unhandledPromptBehavior=dismiss and notify, webdriver.remote.sessionid=2b2f1c2e-6e

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1package com.automationrhapsody.selenium.grid;2import java.net.URI;3import java.net.URISyntaxException;4import java.util.Map;5import org.openqa.selenium.Capabilities;6import org.openqa.selenium.grid.data.Session;7import org.openqa.selenium.remote.http.HttpClient;8import org.openqa.selenium.remote.http.HttpRequest;9import org.openqa.selenium.remote.http.HttpResponse;10import org.openqa.selenium.remote.http.W3CHttpCommandCodec;11import org.openqa.selenium.remote.http.W3CHttpResponseCodec;12public class GetSessionCapabilities {13 public static void main(String[] args) {14 HttpRequest request = new HttpRequest("GET", "/session/2c7f2f8a-2b2a-4b9c-9a4d-4f4c4f4e4e4e");15 HttpResponse response = client.execute(request);16 Session session = new W3CHttpResponseCodec().decode(response, Session.class);17 Capabilities capabilities = session.getCapabilities();18 System.out.println("Browser: " + capabilities.getBrowserName());19 System.out.println("Version: " + capabilities.getVersion());20 System.out.println("Platform: " + capabilities.getPlatform());21 Map<String, Object> additionalCapabilities = capabilities.asMap();22 for (Map.Entry<String, Object> entry : additionalCapabilities.entrySet()) {23 System.out.println(entry.getKey() + ": " + entry.getValue());24 }25 }26}27goog:chromeOptions: {args=[--headless, --disable-gpu, --window-size=1366,768], binary=/usr/bin/google-chrome-stable}28The following code uses the getCapabilities() method of the Session class

Full Screen

Full Screen

getCapabilities

Using AI Code Generation

copy

Full Screen

1package com.automationrhapsody.seleniumgrid;2import static org.junit.Assert.assertEquals;3import static org.junit.Assert.assertFalse;4import java.io.File;5import java.io.IOException;6import java.net.MalformedURLException;7import java.net.URL;8import java.util.HashMap;9import java.util.Map;10import org.junit.After;11import org.junit.Before;12import org.junit.Test;13import org.openqa.selenium.Platform;14import org.openqa.selenium.WebDriver;15import org.openqa.selenium.chrome.ChromeDriver;16import org.openqa.selenium.chrome.ChromeOptions;17import org.openqa.selenium.grid.data.Session;18import org.openqa.selenium.grid.distributor.local.LocalDistributor;19import org.openqa.selenium.grid.node.local.LocalNode;20import org.openqa.selenium.grid.sessionmap.local.LocalSessionMap;21import org.openqa.selenium.grid.web.CombinedHandler;22import org.openqa.selenium.grid.web.RoutableHttpClientFactory;23import org.openqa.selenium.grid.web.Values;24import org.openqa.selenium.remote.RemoteWebDriver;25import org.openqa.selenium.remote.http.HttpClient;26import org.openqa.selenium.remote.http.HttpMethod;27import org.openqa.selenium.remote.http.HttpRequest;28import org.openqa.selenium.remote.http.HttpResponse;29import org.openqa.selenium.remote.http.Route;30import org.openqa.selenium.remote.tracing.DefaultTestTracer;31import org.openqa.selenium.remote.tracing.Tracer;32public class SessionCapabilitiesTest {33 private LocalNode node;34 private LocalDistributor distributor;35 private HttpClient.Factory clientFactory;36 public void setUp() throws IOException {37 Tracer tracer = DefaultTestTracer.createTracer();38 node = LocalNode.builder(tracer)39 .add(browser("chrome", new ChromeOptions()))40 .sessionMap(new LocalSessionMap(tracer))41 .build();42 distributor = new LocalDistributor(tracer, node);43 clientFactory = new RoutableHttpClientFactory(44 new CombinedHandler(distributor, node), tracer);45 }46 public void tearDown() {47 node.stop();48 distributor.stop();49 }50 public void testGetSessionCapabilities() throws MalformedURLException {51 WebDriver driver = new RemoteWebDriver(52 String sessionId = ((RemoteWebDriver) driver).getSessionId().toString

Full Screen

Full Screen

Selenium 4 Tutorial:

LambdaTest’s Selenium 4 tutorial is covering every aspects of Selenium 4 testing with examples and best practices. Here you will learn basics, such as how to upgrade from Selenium 3 to Selenium 4, to some advanced concepts, such as Relative locators and Selenium Grid 4 for Distributed testing. Also will learn new features of Selenium 4, such as capturing screenshots of specific elements, opening a new tab or window on the browser, and new protocol adoptions.

Chapters:

  1. Upgrading From Selenium 3 To Selenium 4?: In this chapter, learn in detail how to update Selenium 3 to Selenium 4 for Java binding. Also, learn how to upgrade while using different build tools such as Maven or Gradle and get comprehensive guidance for upgrading Selenium.

  2. What’s New In Selenium 4 & What’s Being Deprecated? : Get all information about new implementations in Selenium 4, such as W3S protocol adaption, Optimized Selenium Grid, and Enhanced Selenium IDE. Also, learn what is deprecated for Selenium 4, such as DesiredCapabilites and FindsBy methods, etc.

  3. Selenium 4 With Python: Selenium supports all major languages, such as Python, C#, Ruby, and JavaScript. In this chapter, learn how to install Selenium 4 for Python and the features of Python in Selenium 4, such as Relative locators, Browser manipulation, and Chrom DevTool protocol.

  4. Selenium 4 Is Now W3C Compliant: JSON Wireframe protocol is retiring from Selenium 4, and they are adopting W3C protocol to learn in detail about the advantages and impact of these changes.

  5. How To Use Selenium 4 Relative Locator? : Selenium 4 came with new features such as Relative Locators that allow constructing locators with reference and easily located constructors nearby. Get to know its different use cases with examples.

  6. Selenium Grid 4 Tutorial For Distributed Testing: Selenium Grid 4 allows you to perform tests over different browsers, OS, and device combinations. It also enables parallel execution browser testing, reads up on various features of Selenium Grid 4 and how to download it, and runs a test on Selenium Grid 4 with best practices.

  7. Selenium Video Tutorials: Binge on video tutorials on Selenium by industry experts to get step-by-step direction from automating basic to complex test scenarios with Selenium.

Selenium 101 certifications:

LambdaTest also provides certification for Selenium testing to accelerate your career in Selenium automation testing.

Run Selenium automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful