Java 类org.openqa.selenium.net.PortProber 实例源码
项目:just-ask
文件:JvmBasedSeleniumServer.java
@Override
public int startServer(TestSession session) throws ServerException {
port = PortProber.findFreePort();
String[] args = getArgs(port);
if (LOG.isLoggable(Level.INFO)) {
LOG.info(String.format("Spawning a Selenium server using the arguments [%s]", Arrays.toString(args)));
}
ProcessBuilder pb = new ProcessBuilder(getArgs(port));
try {
this.process = pb.start();
return port;
} catch (Exception e) {
throw new ServerException(e.getMessage(), e);
}
}
项目:satisfy
文件:FakeEmailServerRunnerImpl.java
private int getCheckedAvailablePort(int configuredPort, String serverProtocol) {
int actualPort;
if (isAvailablePort(configuredPort)) {
actualPort = configuredPort;
} else {
actualPort = PortProber.findFreePort();
LOG.debug("Configured or default port = " + configuredPort + " for" + serverProtocol.toUpperCase() + " server is not available!!!");
LOG.debug("Founded free port for " + serverProtocol.toUpperCase() + " is " + actualPort);
}
return actualPort;
}
项目:de.lgohlke.selenium-webdriver
文件:HttpServerFromResource.java
public static HttpServer start(String pathToServe) throws IOException {
HttpServer httpServer = HttpServer.create();
httpServer.createContext("/", createHttpExchange(pathToServe));
httpServer.bind(new InetSocketAddress("localhost", PortProber.findFreePort()), 0);
httpServer.start();
return httpServer;
}
项目:de.lgohlke.selenium-webdriver
文件:ChromeDriverServiceFactoryIT.java
@Before
public void beforeEachTest() throws IOException {
httpServer = HttpServer.create();
httpServer.createContext("/webdriverTest", httpExchange -> {
String response = "Welcome Real's HowTo test page";
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
});
httpServer.bind(new InetSocketAddress("localhost", PortProber.findFreePort()), 0);
httpServer.start();
}
项目:de.lgohlke.selenium-webdriver
文件:PhantomJSDriverServiceFactoryIT.java
@Before
public void beforeEachTest() throws IOException {
httpServer = HttpServer.create();
httpServer.createContext("/webdriverTest", httpExchange -> {
String response = "Welcome Real's HowTo test page";
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
});
httpServer.bind(new InetSocketAddress("localhost", PortProber.findFreePort()), 0);
httpServer.start();
}
项目:googleads-java-lib
文件:TestPortFinder.java
/**
* Checks out the next available unused port. Callers should send the returned port
* back to {@link #releaseUnusedPort(int)} when it's no longer being used.
*
* @throws NoSuchElementException if no unused port is available.
*/
public synchronized int checkOutUnusedPort() {
if (availablePorts == null) {
return PortProber.findFreePort();
} else if (availablePorts.isEmpty()) {
// All available ports are checked out.
throw new NoSuchElementException("No unused ports are available");
}
return availablePorts.pop();
}
项目:just-ask
文件:DockerSample.java
private static void foo() throws Exception {
boolean debug = Boolean.parseBoolean(System.getProperty("debug", "false"));
String dockerHost = String.format("http://%s:%d", CENTOS, 2375);
DockerClient docker = null;
try {
docker = DefaultDockerClient.builder()
.uri(dockerHost).build();
Info info = docker.info();
System.err.println("Information : " + info);
if (debug) {
docker.pull(SELENIUM_STANDALONE_CHROME, new LoggingBuildHandler());
} else {
docker.pull(SELENIUM_STANDALONE_CHROME);
}
final ImageInfo imageInfo = docker.inspectImage(SELENIUM_STANDALONE_CHROME);
System.err.println("Information : " + imageInfo);
// Bind container ports to host ports
// final String[] ports = {Integer.toString(PortProber.findFreePort())};
final String[] ports = {"4444"};
final Map<String, List<PortBinding>> portBindings = new HashMap<>();
for (String port : ports) {
List<PortBinding> hostPorts = new ArrayList<>();
hostPorts.add(PortBinding.of("0.0.0.0", PortProber.findFreePort()));
portBindings.put(port, hostPorts);
}
// // Bind container port 443 to an automatically allocated available host port.
// List<PortBinding> randomPort = new ArrayList<>();
// randomPort.add(PortBinding.randomPort("0.0.0.0"));
// portBindings.put("443", randomPort);
System.err.println("Printing the port mappings : " + portBindings);
final HostConfig hostConfig = HostConfig.builder().portBindings(portBindings).build();
final ContainerConfig containerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image(SELENIUM_STANDALONE_CHROME).exposedPorts(ports)
.build();
final ContainerCreation creation = docker.createContainer(containerConfig);
final String id = creation.id();
// Inspect container
final ContainerInfo containerInfo = docker.inspectContainer(id);
System.err.println("Container Information " + containerInfo);
String msg = "Checking to see if the container with id [" + id + "] and name [" +
containerInfo.name() + "]...";
System.err.println(msg);
if (! containerInfo.state().running()) {
// Start container
docker.startContainer(id);
System.err.println(containerInfo.name() + " is now running.");
} else {
System.err.println(containerInfo.name() + " was already running.");
}
System.err.println("Lets wait here !!!");
} finally {
if (docker != null) {
docker.close();
}
}
}
项目:oscon-aus-2016
文件:TestServerUtils.java
private static void createServer() {
serverPort = PortProber.findFreePort();
localIP = new NetworkUtils().getPrivateLocalAddress();
initServer();
}
项目:de.lgohlke.selenium-webdriver
文件:FreeportProber.java
@Override
protected void before() throws Throwable {
port=PortProber.findFreePort();
log.info("found free port: {}",port);
}
项目:carina
文件:FirefoxCapabilities.java
public FirefoxProfile getDefaultFirefoxProfile() {
FirefoxProfile profile = new FirefoxProfile();
boolean generated = false;
int newPort = 7055;
int i = 100;
while (!generated && (--i > 0)) {
newPort = PortProber.findFreePort();
generated = firefoxPorts.add(newPort);
}
if (!generated) {
newPort = 7055;
}
if (firefoxPorts.size() > 20) {
firefoxPorts.remove(0);
}
LOGGER.debug(firefoxPorts);
profile.setPreference(FirefoxProfile.PORT_PREFERENCE, newPort);
LOGGER.debug("FireFox profile will use '" + newPort + "' port number.");
profile.setPreference("dom.max_chrome_script_run_time", 0);
profile.setPreference("dom.max_script_run_time", 0);
if (Configuration.getBoolean(Configuration.Parameter.AUTO_DOWNLOAD) && !(Configuration.isNull(Configuration.Parameter.AUTO_DOWNLOAD_APPS)
|| "".equals(Configuration.get(Configuration.Parameter.AUTO_DOWNLOAD_APPS))))
{
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", ReportContext.getArtifactsFolder().getAbsolutePath());
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", Configuration.get(Configuration.Parameter.AUTO_DOWNLOAD_APPS));
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.saveLinkAsFilenameTimeout", 1);
profile.setPreference("pdfjs.disabled", true);
profile.setPreference("plugin.scan.plid.all", false);
profile.setPreference("plugin.scan.Acrobat", "99.0");
}
else if (Configuration.getBoolean(Configuration.Parameter.AUTO_DOWNLOAD) && Configuration.isNull(Configuration.Parameter.AUTO_DOWNLOAD_APPS)
|| "".equals(Configuration.get(Configuration.Parameter.AUTO_DOWNLOAD_APPS)))
{
LOGGER.warn(
"If you want to enable auto-download for FF please specify '" + Configuration.Parameter.AUTO_DOWNLOAD_APPS.getKey() + "' param");
}
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(true);
return profile;
}