List of usage examples for org.openqa.selenium.remote SessionId SessionId
public SessionId(String opaqueKey)
From source file:com.machinepublishers.jbrowserdriver.JBrowserDriver.java
License:Apache License
/** * Use {@link Settings#builder()} ...build() to create settings to pass to this constructor. * //from w ww.jav a2 s. co m * @param settings */ public JBrowserDriver(final Settings settings) { initWorkThread(); synchronized (locks) { locks.add(lock); } File tmpDir = null; try { tmpDir = Files.createTempDirectory("jbd_tmp_").toFile(); } catch (Throwable t) { Util.handleException(t); } this.tmpDir = tmpDir; this.shutdownHook = new FileRemover(tmpDir); Runtime.getRuntime().addShutdownHook(shutdownHook); final Job job = new Job(settings, configuredPortGroup); synchronized (waiting) { waiting.add(job); waiting.notifyAll(); } synchronized (job) { while (configuredPortGroup.get() == null) { try { job.wait(); } catch (InterruptedException e) { } } } SessionId sessionIdTmp = null; if (!settings.customClasspath()) { synchronized (firstLaunch) { if (firstLaunch.compareAndSet(true, false)) { initClasspath(); classpathArgs.set(classpathUnpackedArgs); sessionIdTmp = new SessionId(launchProcess(settings, configuredPortGroup.get())); if (actualPortGroup.get() == null) { classpathArgs.set(classpathSimpleArgs); } } } } if (actualPortGroup.get() == null) { sessionIdTmp = new SessionId(launchProcess(settings, configuredPortGroup.get())); } sessionId = sessionIdTmp; if (actualPortGroup.get() == null) { endProcess(); Util.handleException(new IllegalStateException("Could not launch browser.")); } HeartbeatRemote heartbeatTmp = null; JBrowserDriverRemote instanceTmp = null; try { synchronized (lock.validated()) { Registry registry = LocateRegistry.getRegistry(settings.host(), (int) actualPortGroup.get().child, new SocketFactory(settings.host(), actualPortGroup.get(), locks)); heartbeatTmp = (HeartbeatRemote) registry.lookup("HeartbeatRemote"); instanceTmp = (JBrowserDriverRemote) registry.lookup("JBrowserDriverRemote"); instanceTmp.setUp(settings); } } catch (Throwable t) { Util.handleException(t); } final HeartbeatRemote heartbeat = heartbeatTmp; heartbeatThread = new Thread(new Runnable() { @Override public void run() { while (true) { if (processEnded.get()) { return; } try { heartbeat.heartbeat(); } catch (RemoteException e) { } try { Thread.sleep(5000); } catch (InterruptedException e) { } } } }); heartbeatThread.setName("Heartbeat"); heartbeatThread.start(); remote = instanceTmp; LogsRemote logsRemote = null; try { synchronized (lock.validated()) { logsRemote = remote.logs(); } } catch (Throwable t) { Util.handleException(t); } logs = new Logs(logsRemote, lock); }
From source file:com.seleniumtests.ut.connectors.selenium.TestSeleniumGridConnector.java
License:Apache License
@BeforeMethod(groups = { "ut" })
private void init() throws ClientProtocolException, IOException {
PowerMockito.mockStatic(HttpClients.class);
PowerMockito.mockStatic(TestLogging.class);
PowerMockito.mockStatic(Unirest.class);
when(HttpClients.createDefault()).thenReturn(client);
when(response.getEntity()).thenReturn(entity);
when(response.getStatusLine()).thenReturn(statusLine);
when(client.execute((HttpHost) any(HttpHost.class), any(HttpRequest.class))).thenReturn(response);
when(driver.getCapabilities()).thenReturn(capabilities);
when(driver.getSessionId()).thenReturn(new SessionId("0"));
}
From source file:com.seleniumtests.ut.core.TestSeleniumTestContext3.java
License:Apache License
/** * Test that a grid connection is created when all parameters are correct * @param testNGCtx/*from w ww. j a v a 2 s. c o m*/ * @throws IllegalAccessException * @throws IllegalArgumentException * @throws NoSuchFieldException * @throws SecurityException * @throws NoSuchMethodException */ @Test(groups = "ut") public void testGridConnection(final ITestContext testNGCtx) throws NoSuchMethodException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { SeleniumGridConnector gridConnector = spy(new SeleniumGridConnector("http://localhost:4444/hub/wd")); // grid connector is in use only if session Id exists doReturn(new SessionId("1234")).when(gridConnector).getSessionId(); PowerMockito.mockStatic(SeleniumGridConnectorFactory.class); PowerMockito.when(SeleniumGridConnectorFactory.getInstances(Arrays.asList("http://localhost:4444/hub/wd"))) .thenReturn(Arrays.asList(gridConnector)); try { System.setProperty(SeleniumTestsContext.RUN_MODE, "grid"); System.setProperty(SeleniumTestsContext.WEB_DRIVER_GRID, "http://localhost:4444/hub/wd"); ITestResult testResult = GenericTest.generateResult(testNGCtx, getClass()); initThreadContext(testNGCtx, "myTest", testResult); Assert.assertEquals(SeleniumTestsContextManager.getThreadContext().getSeleniumGridConnector(), gridConnector); } finally { System.clearProperty(SeleniumTestsContext.RUN_MODE); System.clearProperty(SeleniumTestsContext.WEB_DRIVER_GRID); } }
From source file:com.seleniumtests.ut.core.TestSeleniumTestContext3.java
License:Apache License
/** * Local test, no grid connector/*from w ww.j a v a 2 s . co m*/ * @param testNGCtx * @throws IllegalAccessException * @throws IllegalArgumentException * @throws NoSuchFieldException * @throws SecurityException * @throws NoSuchMethodException */ @Test(groups = "ut") public void testNoGridConnection(final ITestContext testNGCtx) throws NoSuchMethodException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { SeleniumGridConnector gridConnector = spy(new SeleniumGridConnector("http://localhost:4444/hub/wd")); // grid connector is in use only if session Id exists doReturn(new SessionId("1234")).when(gridConnector).getSessionId(); PowerMockito.mockStatic(SeleniumGridConnectorFactory.class); PowerMockito.when(SeleniumGridConnectorFactory.getInstances(Arrays.asList("http://localhost:4444/hub/wd"))) .thenReturn(Arrays.asList(gridConnector)); try { System.setProperty(SeleniumTestsContext.RUN_MODE, "local"); System.setProperty(SeleniumTestsContext.WEB_DRIVER_GRID, "http://localhost:4444/hub/wd"); ITestResult testResult = GenericTest.generateResult(testNGCtx, getClass()); initThreadContext(testNGCtx, "myTest", testResult); Assert.assertNull(SeleniumTestsContextManager.getThreadContext().getSeleniumGridConnector()); } finally { System.clearProperty(SeleniumTestsContext.RUN_MODE); System.clearProperty(SeleniumTestsContext.WEB_DRIVER_GRID); } }
From source file:com.seleniumtests.ut.core.TestSeleniumTestContext3.java
License:Apache License
/** * grid test but missing url. An error should be raised * @param testNGCtx// w ww.j ava 2 s . c o m * @throws IllegalAccessException * @throws IllegalArgumentException * @throws NoSuchFieldException * @throws SecurityException * @throws NoSuchMethodException */ @Test(groups = "ut", expectedExceptions = ConfigurationException.class) public void testGridConnectionWithoutUrl(final ITestContext testNGCtx) throws NoSuchMethodException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { SeleniumGridConnector gridConnector = spy(new SeleniumGridConnector("http://localhost:4444/hub/wd")); // grid connector is in use only if session Id exists doReturn(new SessionId("1234")).when(gridConnector).getSessionId(); PowerMockito.mockStatic(SeleniumGridConnectorFactory.class); PowerMockito.when(SeleniumGridConnectorFactory.getInstances(Arrays.asList("http://localhost:4444/hub/wd"))) .thenReturn(Arrays.asList(gridConnector)); try { System.setProperty(SeleniumTestsContext.RUN_MODE, "grid"); System.setProperty(SeleniumTestsContext.WEB_DRIVER_GRID, ""); ITestResult testResult = GenericTest.generateResult(testNGCtx, getClass()); initThreadContext(testNGCtx, "myTest", testResult); } finally { System.clearProperty(SeleniumTestsContext.RUN_MODE); System.clearProperty(SeleniumTestsContext.WEB_DRIVER_GRID); } }
From source file:com.seleniumtests.ut.core.TestTestTasks.java
License:Apache License
@Test(groups = { "ut" })
public void testKillProcessGrid(final ITestContext testNGCtx) {
SeleniumGridConnector gridConnector = spy(new SeleniumRobotGridConnector("http://localhost:4444/hub/wd"));
doNothing().when(gridConnector).killProcess("some_process");
// grid connector is in use only if session Id exists
doReturn(new SessionId("1234")).when(gridConnector).getSessionId();
PowerMockito.mockStatic(SeleniumGridConnectorFactory.class);
PowerMockito.when(SeleniumGridConnectorFactory.getInstances(Arrays.asList("http://localhost:4444/hub/wd")))
.thenReturn(Arrays.asList(gridConnector));
try {/*from w w w . j a va 2 s . c o m*/
System.setProperty(SeleniumTestsContext.RUN_MODE, "grid");
System.setProperty(SeleniumTestsContext.WEB_DRIVER_GRID, "http://localhost:4444/hub/wd");
initThreadContext(testNGCtx);
SeleniumTestsContextManager.getThreadContext().getSeleniumGridConnectors();
TestTasks.killProcess("some_process");
verify(gridConnector).killProcess("some_process");
} finally {
System.clearProperty(SeleniumTestsContext.RUN_MODE);
System.clearProperty(SeleniumTestsContext.WEB_DRIVER_GRID);
}
}
From source file:com.seleniumtests.ut.core.TestTestTasks.java
License:Apache License
@Test(groups = { "ut" })
public void testGetProcessListGrid(final ITestContext testNGCtx) {
SeleniumGridConnector gridConnector = spy(new SeleniumRobotGridConnector("http://localhost:4444/hub/wd"));
doReturn(Arrays.asList(10, 20)).when(gridConnector).getProcessList("some_process");
// grid connector is in use only if session Id exists
doReturn(new SessionId("1234")).when(gridConnector).getSessionId();
PowerMockito.mockStatic(SeleniumGridConnectorFactory.class);
PowerMockito.when(SeleniumGridConnectorFactory.getInstances(Arrays.asList("http://localhost:4444/hub/wd")))
.thenReturn(Arrays.asList(gridConnector));
try {//from ww w . j a v a 2 s. c om
System.setProperty(SeleniumTestsContext.RUN_MODE, "grid");
System.setProperty(SeleniumTestsContext.WEB_DRIVER_GRID, "http://localhost:4444/hub/wd");
initThreadContext(testNGCtx);
SeleniumTestsContextManager.getThreadContext().getSeleniumGridConnectors();
TestTasks.getProcessList("some_process");
verify(gridConnector).getProcessList("some_process");
} finally {
System.clearProperty(SeleniumTestsContext.RUN_MODE);
System.clearProperty(SeleniumTestsContext.WEB_DRIVER_GRID);
}
}
From source file:com.seleniumtests.ut.driver.TestCustomEventFiringWebDriver.java
License:Apache License
@BeforeMethod(groups = { "ut" })
private void init() throws Exception {
PowerMockito.spy(CustomEventFiringWebDriver.class);
// add DriverExceptionListener to reproduce driver behavior
eventDriver = spy(/*from ww w. j ava 2 s.c o m*/
new CustomEventFiringWebDriver(driver, null, browserInfo, true, DriverMode.LOCAL, null, null)
.register(new DriverExceptionListener()));
when(driver.manage()).thenReturn(options);
when(driver.getSessionId()).thenReturn(new SessionId("1234"));
when(driver.getPageSource()).thenReturn("<html></html>");
when(options.window()).thenReturn(window);
when(window.getSize()).thenReturn(new Dimension(100, 100));
PowerMockito.mockStatic(OSUtilityFactory.class);
when(OSUtilityFactory.getInstance()).thenReturn(osUtility);
PowerMockito.whenNew(Robot.class).withNoArguments().thenReturn(robot);
PowerMockito.whenNew(VideoRecorder.class).withAnyArguments().thenReturn(videoRecorder);
PowerMockito.whenNew(Keyboard.class).withNoArguments().thenReturn(keyboard);
PowerMockito.doReturn(new Rectangle(1900, 1000)).when(CustomEventFiringWebDriver.class,
"getScreensRectangle");
}
From source file:com.seleniumtests.ut.uipage.htmlelements.TestHtmlElement.java
License:Apache License
@BeforeMethod(groups = { "ut" })
private void init() throws WebDriverException, IOException {
// mimic sub elements of the HtmlElement
List<WebElement> subElList = new ArrayList<WebElement>();
subElList.add(subElement1);// w w w .jav a 2 s. c o m
subElList.add(subElement2);
// list of elements correspond
List<WebElement> elList = new ArrayList<WebElement>();
elList.add(element);
// add DriverExceptionListener to reproduce driver behavior
eventDriver = spy(new CustomEventFiringWebDriver(driver).register(new DriverExceptionListener()));
PowerMockito.mockStatic(WebUIDriver.class);
when(WebUIDriver.getWebDriver()).thenReturn(eventDriver);
when(driver.findElement(By.id("el"))).thenReturn(element);
when(driver.findElements(By.name("subEl"))).thenReturn(subElList);
when(driver.findElement(By.name("subEl"))).thenReturn(subElement1);
when(driver.findElements(By.id("el"))).thenReturn(elList);
when(driver.getKeyboard()).thenReturn(keyboard);
when(driver.getMouse()).thenReturn(mouse);
when(driver.switchTo()).thenReturn(locator);
when(driver.executeScript(anyString())).thenReturn(Arrays.asList(100, 100));
when(element.findElement(By.name("subEl"))).thenReturn(subElement1);
when(element.findElements(By.name("subEl"))).thenReturn(subElList);
when(element.getAttribute(anyString())).thenReturn("attribute");
when(element.getSize()).thenReturn(new Dimension(10, 10));
when(element.getLocation()).thenReturn(new Point(5, 5));
when(element.getTagName()).thenReturn("h1");
when(element.getText()).thenReturn("text");
when(element.isDisplayed()).thenReturn(true);
when(element.isEnabled()).thenReturn(true);
when(subElement1.isDisplayed()).thenReturn(true);
when(subElement2.isDisplayed()).thenReturn(true);
when(subElement1.getLocation()).thenReturn(new Point(5, 5));
when(subElement2.getLocation()).thenReturn(new Point(5, 5));
when(mobileElement.getCenter()).thenReturn(new Point(2, 2));
when(mobileElement.getLocation()).thenReturn(new Point(1, 1));
when(mobileElement.isDisplayed()).thenReturn(true);
when(mobileElement.getId()).thenReturn("12");
// init for mobile tests
AppiumCommandExecutor ce = Mockito.mock(AppiumCommandExecutor.class);
Response response = new Response(new SessionId("1"));
response.setValue(new HashMap<String, Object>());
Response findResponse = new Response(new SessionId("1"));
findResponse.setValue(mobileElement);
when(ce.execute(any())).thenReturn(response, response, response, findResponse);
doReturn(response).when(ce)
.execute(argThat(command -> DriverCommand.NEW_SESSION.equals(command.getName())));
doReturn(response).when(ce)
.execute(argThat(command -> DriverCommand.FIND_ELEMENT.equals(command.getName())));
doReturn(response).when(ce).execute(argThat(command -> "getSession".equals(command.getName())));
// newSession, getSession, getSession, findElement
mobileDriver = Mockito.spy(new AppiumDriver<>(ce, new DesiredCapabilities()));
SeleniumTestsContextManager.getThreadContext().setTestType(TestType.WEB);
SeleniumTestsContextManager.getThreadContext().setBrowser("htmlunit");
}
From source file:com.thoughtworks.selenium.webdriven.WebDriverBackedSeleniumServlet.java
License:Apache License
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cmd = req.getParameter("cmd"); SessionId sessionId = new SessionId(req.getParameter("sessionId")); String[] args = deserializeArgs(req); if (cmd == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return;/*from ww w.j av a 2s .c o m*/ } StringBuilder printableArgs = new StringBuilder("["); Joiner.on(", ").appendTo(printableArgs, args); printableArgs.append("]"); getServletContext() .log(String.format("Command request: %s%s on session %s", cmd, printableArgs, sessionId)); if ("getNewBrowserSession".equals(cmd)) { // Figure out what to do. If the first arg is "*webdriver", check for a session id and use // that existing session if present. Otherwise, start a new session with whatever comes to // hand. If, however, the first parameter specifies something else, then create a session // using a webdriver-backed instance of that. startNewSession(resp, args[0], args[1], args.length == 4 ? args[3] : ""); return; } else if ("testComplete".equals(cmd)) { sessionsSupplier.get().deleteSession(sessionId); CommandProcessor commandProcessor = SESSIONS.getIfPresent(sessionId); if (commandProcessor == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return; } SESSIONS.invalidate(sessionId); sendResponse(resp, null); return; } // Common case. CommandProcessor commandProcessor = SESSIONS.getIfPresent(sessionId); if (commandProcessor == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return; } try { String result = commandProcessor.doCommand(cmd, args); sendResponse(resp, result); } catch (SeleniumException e) { sendError(resp, e.getMessage()); } }