当前位置: 首页>>代码示例>>Java>>正文


Java HttpCommandExecutor类代码示例

本文整理汇总了Java中org.openqa.selenium.remote.HttpCommandExecutor的典型用法代码示例。如果您正苦于以下问题:Java HttpCommandExecutor类的具体用法?Java HttpCommandExecutor怎么用?Java HttpCommandExecutor使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


HttpCommandExecutor类属于org.openqa.selenium.remote包,在下文中一共展示了HttpCommandExecutor类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getProxyExecutor

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
public static HttpCommandExecutor getProxyExecutor(URL url, Properties prop) {

        prop = decrypt(prop);

        String proxyHost = prop.getProperty("proxyHost");
        int proxyPort = Integer.valueOf(prop.getProperty("proxyPort"));
        String proxyUserDomain = prop.getProperty("proxyUserDomain");
        String proxyUser = prop.getProperty("proxyUser");
        String proxyPassword = prop.getProperty("proxyPassword");

        HttpClientBuilder builder = HttpClientBuilder.create();
        HttpHost proxy = new HttpHost(proxyHost, proxyPort);
        CredentialsProvider credsProvider = new BasicCredentialsProvider();

        credsProvider.setCredentials(new AuthScope(proxyHost, proxyPort),
                new NTCredentials(proxyUser, proxyPassword, getWorkstation(), proxyUserDomain));
        if (url.getUserInfo() != null && !url.getUserInfo().isEmpty()) {
            credsProvider.setCredentials(new AuthScope(url.getHost(), (url.getPort() > 0 ? url.getPort() : url.getDefaultPort())),
                    new UsernamePasswordCredentials(proxyUser, proxyPassword));
        }
        builder.setProxy(proxy);
        builder.setDefaultCredentialsProvider(credsProvider);
        HttpClient.Factory factory = new SimpleHttpClientFactory(builder);
        return new HttpCommandExecutor(new HashMap<String, CommandInfo>(), url, factory);

    }
 
开发者ID:CognizantQAHub,项目名称:Cognizant-Intelligent-Test-Scripter,代码行数:27,代码来源:RemoteProxy.java

示例2: AppiumDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * @param executor is an instance of {@link org.openqa.selenium.remote.HttpCommandExecutor}
 *                 or class that extends it. Default commands or another vendor-specific
 *                 commands may be specified there.
 * @param capabilities take a look
 *                     at {@link org.openqa.selenium.Capabilities}
 * @param converterClazz is an instance of a class that extends
 * {@link org.openqa.selenium.remote.internal.JsonToWebElementConverter}. It converts
 *                       JSON response to an instance of
 *                       {@link org.openqa.selenium.WebElement}
 */
protected AppiumDriver(HttpCommandExecutor executor, Capabilities capabilities,
    Class<? extends JsonToWebElementConverter> converterClazz) {
    super(executor, capabilities);
    this.executeMethod = new AppiumExecutionMethod(this);
    locationContext = new RemoteLocationContext(executeMethod);
    super.setErrorHandler(errorHandler);
    this.remoteAddress = executor.getAddressOfRemoteServer();
    try {
        Constructor<? extends JsonToWebElementConverter> constructor =
                converterClazz.getConstructor(RemoteWebDriver.class);
        this.setElementConverter(constructor.newInstance(this));
    } catch (NoSuchMethodException | IllegalAccessException | InstantiationException
            | InvocationTargetException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:JoeUtt,项目名称:menggeqa,代码行数:28,代码来源:AppiumDriver.java

示例3: getSesionNodeUrl

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
private URL getSesionNodeUrl(RemoteWebDriver remoteDriver) {
    URL hostFound = null;
    try {
        HttpCommandExecutor sessionExcuter = (HttpCommandExecutor) remoteDriver.getCommandExecutor();
        HttpHost host = new HttpHost(sessionExcuter.getAddressOfRemoteServer().getHost(), sessionExcuter.getAddressOfRemoteServer().getPort());
        BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest( "POST", new URL("http://" + sessionExcuter.getAddressOfRemoteServer().getHost() + ":" + sessionExcuter.getAddressOfRemoteServer().getPort() + "/grid/api/testsession?session=" + remoteDriver.getSessionId()).toExternalForm());
        HttpResponse response = new DefaultHttpClient().execute(host, request);
        URL myURL = new URL(new JSONObject(EntityUtils.toString(response.getEntity())).getString("proxyId"));
        if ((myURL.getHost() != null) && (myURL.getPort() != -1)) {
            hostFound = myURL;
        }
    } catch (Exception e) {
        
    }
    return hostFound;
}
 
开发者ID:gildaslemoal,项目名称:elpi,代码行数:17,代码来源:WebdriverTestCase.java

示例4: createWebDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
public WebDriverEx createWebDriver(DriverService driverService,
                                      DesiredCapabilities desiredCapabilities,
                                      SiteConfig siteConfig,
                                      DriverConfig driverConfig) throws IOException {
    driverService.start();

    //自定义HttpClientFactory用于设置命令超时时间
    ApacheHttpClient.Factory httpClientFactory = createHttpClientFactory(siteConfig, driverConfig);
    HttpCommandExecutor httpCommandExecutor = new HttpCommandExecutor(
            ImmutableMap.<String, CommandInfo>of(), driverService.getUrl(), httpClientFactory);
    WebDriverEx webDriver = new WebDriverEx(httpCommandExecutor, desiredCapabilities);
    webDriver.setDriverService(driverService);
    webDriver.setCreatedTime(new Date());

    webDriver.manage().timeouts().implicitlyWait(driverConfig.getImplicitlyWait(), TimeUnit.MILLISECONDS);
    webDriver.manage().timeouts().pageLoadTimeout(driverConfig.getPageLoadTimeout(), TimeUnit.MILLISECONDS);
    webDriver.manage().timeouts().setScriptTimeout(driverConfig.getScriptTimeout(), TimeUnit.MILLISECONDS);

    return webDriver;
}
 
开发者ID:brucezee,项目名称:jspider,代码行数:21,代码来源:WebDriverFactory.java

示例5: enrichRemoteWebDriverToInteractDirectlyWithNode

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * A helper method that enriches a {@link RemoteWebDriver} instance with the ability to route all browser
 * interaction requests directly to the node on which the session was created and route only the session termination
 * request to the hub.
 *
 * @param driver - A {@link RemoteWebDriver} instance.
 * @param hub    - A {@link Host} object that represents the Hub information.
 * @return - A {@link RemoteWebDriver} instance that is enriched with the ability to route all browser interactions
 * directly to the node.
 */
public static RemoteWebDriver enrichRemoteWebDriverToInteractDirectlyWithNode(RemoteWebDriver driver, Host hub) {
    if (hub == null) {
        return driver;
    }
    try {
        CommandExecutor grid = driver.getCommandExecutor();
        String sessionId = driver.getSessionId().toString();
        GridApiAssistant assistant = new GridApiAssistant(hub);

        Host nodeHost = assistant.getNodeDetailsForSession(sessionId);
        URL url = new URL(String.format("http://%s:%d/wd/hub", nodeHost.getIpAddress(), nodeHost.getPort()));
        CommandExecutor node = new HttpCommandExecutor(url);
        CommandCodec commandCodec = getCodec(grid, "commandCodec");
        ResponseCodec responseCodec = getCodec(grid, "responseCodec");
        setCodec(node, commandCodec, "commandCodec");
        setCodec(node, responseCodec, "responseCodec");
        appendListenerToWebDriver(driver, grid, node);
        LOG.info("Traffic will now be routed directly to the node.");
        LOG.warning(constructWarningMessage(hub));
    } catch (Exception e) {
        //Gobble exceptions
        LOG.warning("Unable to enrich the RemoteWebDriver instance. Root cause :" + e.getMessage()
            + ". Returning back the original instance that was passed, as is.");
    }
    return driver;
}
 
开发者ID:RationaleEmotions,项目名称:talk2grid,代码行数:37,代码来源:RemoteWebDriverEnricher.java

示例6: getHubInfo

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
private static Host getHubInfo(RemoteWebDriver driver) {
    Host hub = null;
    CommandExecutor executor = driver.getCommandExecutor();
    if (executor instanceof HttpCommandExecutor) {
        URL url = ((HttpCommandExecutor) executor).getAddressOfRemoteServer();
        hub = new Host(url.getHost(), Integer.toString(url.getPort()));
    }
    return hub;
}
 
开发者ID:RationaleEmotions,项目名称:talk2grid,代码行数:10,代码来源:RemoteWebDriverEnricher.java

示例7: addGeckoDriverAddon

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * Patch for
 * https://github.com/CognizantQAHub/Cognizant-Intelligent-Test-Scripter/issues/7
 * Based on
 * https://github.com/mozilla/geckodriver/issues/759#issuecomment-308522851
 *
 * @param fDriver FirefoxDriver
 */
private static void addGeckoDriverAddon(FirefoxDriver fDriver) {
    if (SystemDefaults.getClassesFromJar.get() && SystemDefaults.debugMode.get()) {
        if (FilePath.getFireFoxAddOnPath().exists()) {
            HttpCommandExecutor ce = (HttpCommandExecutor) fDriver.getCommandExecutor();
            String url = ce.getAddressOfRemoteServer() + "/session/" + fDriver.getSessionId() + "/moz/addon/install";
            addGeckoDriverAddon(FilePath.getFireFoxAddOnPath(), url);
        }
    }
}
 
开发者ID:CognizantQAHub,项目名称:Cognizant-Intelligent-Test-Scripter,代码行数:18,代码来源:WebDriverFactory.java

示例8: createGridExecutor

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * Returns an {@link URL} to a Selenium grid (e.g. SauceLabs) that contains basic authentication for access
 * 
 * @return {@link URL} to Selenium grid augmented with credentials
 * @throws MalformedURLException
 */
public static HttpCommandExecutor createGridExecutor(ProxyConfigurationDto proxyConfig, URL gridUrl, String gridUsername,
                                                     String gridPassword) throws MalformedURLException
{
    // create a configuration for accessing target site via proxy (if a proxy is defined)
    // the proxy and the destination site will have different or no credentials for accessing them
    // so we need to create different authentication scopes and link them with the credentials
    BasicCredentialsProvider basicCredentialsProvider = new BasicCredentialsProvider();

    // create credentials for proxy access
    if (proxyConfig != null //
    && !StringUtils.isEmpty(proxyConfig.getUsername()) //
    && !StringUtils.isEmpty(proxyConfig.getPassword()))
    {
        AuthScope proxyAuth = new AuthScope(proxyConfig.getHost(), Integer.valueOf(proxyConfig.getPort()));
        Credentials proxyCredentials = new UsernamePasswordCredentials(proxyConfig.getUsername(), proxyConfig.getPassword());
        basicCredentialsProvider.setCredentials(proxyAuth, proxyCredentials);
    }

    // create credentials for target website
    AuthScope gridAuth = new AuthScope(gridUrl.getHost(), gridUrl.getPort());

    if (!StringUtils.isEmpty(gridUsername))
    {
        Credentials gridCredentials = new UsernamePasswordCredentials(gridUsername, gridPassword);
        basicCredentialsProvider.setCredentials(gridAuth, gridCredentials);
    }

    // now create a http client, set the custom proxy and inject the credentials
    HttpClientBuilder clientBuilder = HttpClientBuilder.create();
    clientBuilder.setDefaultCredentialsProvider(basicCredentialsProvider);
    if (proxyConfig != null)
        clientBuilder.setProxy(new HttpHost(proxyConfig.getHost(), Integer.valueOf(proxyConfig.getPort())));
    CloseableHttpClient httpClient = clientBuilder.build();

    Map<String, CommandInfo> additionalCommands = new HashMap<String, CommandInfo>();   // just a dummy

    // this command executor will do the credential magic for us. both proxy and target site credentials
    return new HttpCommandExecutor(additionalCommands, gridUrl, new ProxyHttpClient(httpClient));

}
 
开发者ID:Xceptance,项目名称:SiteGenesis-Community-TestSuite,代码行数:47,代码来源:AnnotationRunnerHelper.java

示例9: seleniumSetup

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * Connect to selenium.
 *
 * @throws MalformedURLException
 */
@Before(order = ORDER_10, value = {"@mobile,@web"})
public void seleniumSetup() throws MalformedURLException {
    String grid = System.getProperty("SELENIUM_GRID");
    if (grid == null) {
        fail("Selenium grid not available");
    }
    String b = ThreadProperty.get("browser");

    if ("".equals(b)) {
        fail("Non available browsers");
    }

    String browser = b.split("_")[0];
    String version = b.split("_")[1];
    commonspec.setBrowserName(browser);
    commonspec.getLogger().debug("Setting up selenium for {}", browser);

    DesiredCapabilities capabilities = null;

    switch (browser.toLowerCase()) {
        case "chrome":
            ChromeOptions chromeOptions = new ChromeOptions();
            chromeOptions.addArguments("--no-sandbox");
            chromeOptions.addArguments("--ignore-certificate-errors");
            capabilities = DesiredCapabilities.chrome();
            capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
            break;
        case "firefox":
            capabilities = DesiredCapabilities.firefox();
            break;
        case "phantomjs":
            capabilities = DesiredCapabilities.phantomjs();
            break;
        case "iphone":
        case "safari":
            capabilities = DesiredCapabilities.iphone();
            capabilities.setCapability("platformName", "iOS");
            capabilities.setCapability("platformVersion", "8.1");
            capabilities.setCapability("deviceName", "iPhone Simulator");
            break;
        case "android":
            capabilities = DesiredCapabilities.android();
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("platformVersion", "6.0");
            capabilities.setCapability("deviceName", "Android Emulator");
            capabilities.setCapability("app", "Browser");
            break;
        default:
            commonspec.getLogger().error("Unknown browser: " + browser);
            throw new SeleniumException("Unknown browser: " + browser);
    }

    capabilities.setVersion(version);

    grid = "http://" + grid + "/wd/hub";
    HttpClient.Factory factory = new ApacheHttpClient.Factory(new HttpClientFactory(60000, 60000));
    HttpCommandExecutor executor = new HttpCommandExecutor(new HashMap<String, CommandInfo>(), new URL(grid), factory);
    commonspec.setDriver(new RemoteWebDriver(executor, capabilities));
    commonspec.getDriver().manage().timeouts().pageLoadTimeout(PAGE_LOAD_TIMEOUT, TimeUnit.SECONDS);
    commonspec.getDriver().manage().timeouts().implicitlyWait(IMPLICITLY_WAIT, TimeUnit.SECONDS);
    commonspec.getDriver().manage().timeouts().setScriptTimeout(SCRIPT_TIMEOUT, TimeUnit.SECONDS);

    commonspec.getDriver().manage().deleteAllCookies();
    if (capabilities.getCapability("deviceName") == null) {
        commonspec.getDriver().manage().window().setSize(new Dimension(1440, 900));
    }
    commonspec.getDriver().manage().window().maximize();

}
 
开发者ID:Stratio,项目名称:bdt,代码行数:75,代码来源:HookGSpec.java

示例10: createRemoteWebDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
protected WebDriver createRemoteWebDriver(DesiredCapabilities desiredCapabilities, URL remoteUrl) {
    HttpCommandExecutor httpCommandExecutor = new HttpCommandExecutor(remoteUrl);
    setRemoteWebDriverProxy(httpCommandExecutor);
    return new Augmenter().augment(new RemoteWebDriver(httpCommandExecutor, desiredCapabilities));
}
 
开发者ID:Hi-Fi,项目名称:robotframework-seleniumlibrary-java,代码行数:6,代码来源:BrowserManagement.java

示例11: createRemoteWebDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
protected WebDriver createRemoteWebDriver(DesiredCapabilities desiredCapabilities, URL remoteUrl) {
	HttpCommandExecutor httpCommandExecutor = new HttpCommandExecutor(remoteUrl);
	setRemoteWebDriverProxy(httpCommandExecutor);
	return new Augmenter().augment(new RemoteWebDriver(httpCommandExecutor, desiredCapabilities));
}
 
开发者ID:MarkusBernhardt,项目名称:robotframework-selenium2library-java,代码行数:6,代码来源:BrowserManagement.java

示例12: AndroidDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * @param executor is an instance of {@link org.openqa.selenium.remote.HttpCommandExecutor}
 *                 or class that extends it. Default commands or another vendor-specific
 *                 commands may be specified there.
 * @param capabilities take a look
 *                     at {@link org.openqa.selenium.Capabilities}
 */
public AndroidDriver(HttpCommandExecutor executor, Capabilities capabilities) {
    super(executor, capabilities, JsonToAndroidElementConverter.class);
}
 
开发者ID:JoeUtt,项目名称:menggeqa,代码行数:11,代码来源:AndroidDriver.java

示例13: IOSDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * @param executor is an instance of {@link org.openqa.selenium.remote.HttpCommandExecutor}
 *                 or class that extends it. Default commands or another vendor-specific
 *                 commands may be specified there.
 * @param capabilities take a look
 *                     at {@link org.openqa.selenium.Capabilities}
 */
public IOSDriver(HttpCommandExecutor executor, Capabilities capabilities) {
    super(executor, capabilities, JsonToIOSElementConverter.class);
}
 
开发者ID:JoeUtt,项目名称:menggeqa,代码行数:11,代码来源:IOSDriver.java

示例14: PhantomJSDriver

import org.openqa.selenium.remote.HttpCommandExecutor; //导入依赖的package包/类
/**
 * Creates a new PhantomJSDriver instance using the given HttpCommandExecutor.
 *
 * @param executor            The command executor to use
 * @param desiredCapabilities The capabilities required from PhantomJS/GhostDriver.
 */
public PhantomJSDriver(HttpCommandExecutor executor, Capabilities desiredCapabilities) {
    super(new org.openqa.selenium.phantomjs.PhantomJSDriver(executor, desiredCapabilities));
}
 
开发者ID:KarlGong,项目名称:easyium-java,代码行数:10,代码来源:PhantomJSDriver.java


注:本文中的org.openqa.selenium.remote.HttpCommandExecutor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。