类org.openqa.selenium.remote.RemoteWebDriver源码实例Demo

下面列出了怎么用org.openqa.selenium.remote.RemoteWebDriver的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: collect-earth   文件: BrowserService.java
private boolean loadPlotInDGMap(SimplePlacemarkObject placemarkObject, RemoteWebDriver driver)
		throws InterruptedException {

	boolean success = true;
	if (driver != null && waitFor("mainContent", driver) && driver instanceof JavascriptExecutor) {
		try {
			String dgmapJs = getDGMapJavascript(placemarkObject);
			driver.executeScript(dgmapJs);

			Thread.sleep( 1000 );
			// Unlock the view if it is locked
			if( isCssElementPresent(".lock.on",  driver)  ) {
				driver.findElementByCssSelector(".lock.on").click(); // UNLOCK
			}

		} catch (final Exception e) {
			processSeleniumError(e);
			success = false;
		}
	}
	return success;
}
 
源代码2 项目: candybean   文件: GridInterface.java
@Override
public void start() throws CandybeanException {
	capabilities.setBrowserName(candybean.config.getValue("grid.browser"));
	capabilities.setCapability("platform",candybean.config.getValue("grid.platform"));
	String ip = candybean.config.getValue("grid.ip");
	String port = candybean.config.getValue("grid.port");
	logger.info("Starting interface with ip " + ip + " and port " + port);
	try {
		URL url = new URL("http://" + ip + ":" + port +  "/wd/hub");
		System.out.println(url.toString());
		wd = new RemoteWebDriver(url, capabilities);
	} catch (MalformedURLException e) {
		throw new CandybeanException(e);
	}
	super.start(); // requires wd to be instantiated first
}
 
源代码3 项目: adf-selenium   文件: ButtonTest.java
@Test
public void testWindowPopupButton() {
    RemoteWebDriver webdriver = driver.getDriver();
    ButtonDemoPage page = pages.goHome();

    DialogManager dialogManager = driver.getDialogManager();
    assertEquals(0, dialogManager.totalNumberOfDialogsOpen());
    assertNull(dialogManager.getCurrentDialog());

    // find an click af:button with useWindow='true'
    NewFileWindowDialog dialog = page.clickUseWindowButton(); // opens popup in new browser window

    // verify new dialog is opened and active
    assertEquals(1, dialogManager.totalNumberOfDialogsOpen());
    Dialog firstDialog = dialogManager.getCurrentDialog();
    assertNotNull(firstDialog);
    assertEquals("New File", firstDialog.getTitle(webdriver));

    // close dialog by clicking Save button in dialog
    dialog.findSaveButton().clickWithDialogDetect();
    assertEquals(0, dialogManager.totalNumberOfDialogsOpen());
}
 
源代码4 项目: carina   文件: DesktopFactory.java
@Override
public String getVncURL(WebDriver driver) {
    String vncURL = null;
    if (driver instanceof RemoteWebDriver && "true".equals(Configuration.getCapability("enableVNC"))) {
        // TODO: resolve negative case when VNC is not supported
        final RemoteWebDriver rwd = (RemoteWebDriver) driver;
        String protocol = R.CONFIG.get(vnc_protocol);
        String host = R.CONFIG.get(vnc_host);
        String port = R.CONFIG.get(vnc_port);
        // If VNC host/port not set user them from Selenium
        if (StringUtils.isEmpty(host) || StringUtils.isEmpty(port)) {
            host = ((HttpCommandExecutor) rwd.getCommandExecutor()).getAddressOfRemoteServer().getHost();
            port = String.valueOf(((HttpCommandExecutor) rwd.getCommandExecutor()).getAddressOfRemoteServer().getPort());
        }
        vncURL = String.format(R.CONFIG.get("vnc_desktop"), protocol, host, port, rwd.getSessionId().toString());
    }
    return vncURL;
}
 
源代码5 项目: demo-java   文件: UpdateSauceStatusTest.java
public void setUp() throws MalformedURLException {
    String username = System.getenv("SAUCE_USERNAME");
    String accessKey = System.getenv("SAUCE_ACCESS_KEY");

    ChromeOptions chromeOpts = new ChromeOptions();
    chromeOpts.setExperimentalOption("w3c", true);

    MutableCapabilities sauceOpts = new MutableCapabilities();
    sauceOpts.setCapability("username", username);
    sauceOpts.setCapability("accessKey", accessKey);

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability(ChromeOptions.CAPABILITY,  chromeOpts);
    caps.setCapability("sauce:options", sauceOpts);
    caps.setCapability("browserName", "googlechrome");
    caps.setCapability("browserVersion", "latest");
    caps.setCapability("platformName", "windows 10");

    String sauceUrl = "https://ondemand.saucelabs.com:443/wd/hub";
    URL url = new URL(sauceUrl);
    driver = new RemoteWebDriver(url, caps);
}
 
源代码6 项目: xframium-java   文件: BackAction.java
@Override
public boolean _executeAction( WebDriver webDriver, List<Object> parameterList )
{
	String deviceName = getDeviceName( webDriver );
	Handset localDevice = PerfectoMobile.instance(( (DeviceWebDriver) webDriver ).getxFID() ).devices().getDevice( deviceName );

	if ( (localDevice.getOs().toLowerCase().equals( "android" )) && (webDriver instanceof DeviceWebDriver) )
	{
		try
		{
			Map<String, Object> params = new HashMap<>();
			params.put("keySequence", "BACK");
			((RemoteWebDriver) ((DeviceWebDriver) webDriver).getWebDriver()).executeScript("mobile:presskey", params);
		}
		catch ( Throwable e )
		{
			log.error("Failed to press BACK key.");
		}
	}
	else
	{
		webDriver.navigate().back();
	}
	return true;
}
 
@Test
public void testConnection() {
    // getWebDriver {
    RemoteWebDriver driver = chrome.getWebDriver();
    // }

    // Construct a URL that the browser container can access
    // getPage {
    String hostIpAddress = chrome.getTestHostIpAddress();
    driver.get("http://" + hostIpAddress + ":" + localPort);
    // }

    String headingText = driver.findElement(By.cssSelector("h1")).getText().trim();

    assertEquals("The hardcoded success message was found on a page fetched from a local server", "It worked", headingText);
}
 
public static WebDriver getFirefoxDriver()
            throws Exception
	{
        baseDir = new File(".").getPath();
        System.out.println("******** " + baseDir);

        String path = "src/test/resources/geckodriver";
        System.out.println("******** " + path);
		System.setProperty("webdriver.gecko.driver", path);

        DesiredCapabilities capabilities =  DesiredCapabilities.firefox();
		capabilities.setCapability("marionette", true);
        capabilities.setCapability("networkConnectionEnabled", true);
        capabilities.setCapability("browserConnectionEnabled", true);


        WebDriver driver = new RemoteWebDriver(
                new URL("http://localhost:4444"),
                capabilities);

//		WebDriver driver = new MarionetteDriver(capabilities);

		return driver;
	}
 
源代码9 项目: AndroidRobot   文件: MyTest.java
public void test() {
		SelendroidCapabilities capa = new SelendroidCapabilities(TEST_APP_ID);
		capa.setLaunchActivity("com.eg.android.AlipayGphone.AlipayLogin");
		WebDriver driver = new RemoteWebDriver(capa);
		//driver.switchTo().window("NATIVE_APP");//
		WebElement inputField = driver.findElement(By.id("buttonStartWebview"));
		inputField.click();
		
		driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

		System.out.println("============================================");
		WebDriver webDriver = driver.switchTo().window("WEBVIEW_0");
		System.out.println("=====================3432=======================");
		webDriver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
		System.out.println("getWindowHandle:" + webDriver.getPageSource());
		//WebElement element3 = webDriver.findElement(By.xpath("//input[@value='Send me your name!']"));
		WebElement element3 = webDriver.findElement(By.xpath("//input[@id='name_input']"));
		element3.sendKeys("he zheng");
		//element3.clear();

		webDriver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
//		inputField.sendKeys("Selendroid");
//		Assert.assertEquals("Selendroid", inputField.getText());
		//driver.quit();
	}
 
源代码10 项目: akita   文件: CustomDriverProvider.java
/**
 * Задает capabilities для запуска Remote драйвера для Selenoid
 *
 * @param capabilities - capabilities для установленного браузера
 * @param remoteUrl    - url для запуска тестов, например http://remoteIP:4444/wd/hub
 * @return WebDriver
 */
private WebDriver getRemoteDriver(MutableCapabilities capabilities, String remoteUrl) {
    log.info("---------------run Remote Driver---------------------");
    Boolean isSelenoidRun = loadSystemPropertyOrDefault(SELENOID, true);
    if (isSelenoidRun) {
        capabilities.setCapability("enableVNC", true);
        capabilities.setCapability("screenResolution", String.format("%sx%s", loadSystemPropertyOrDefault(WINDOW_WIDTH, DEFAULT_WIDTH),
                loadSystemPropertyOrDefault(WINDOW_HEIGHT, DEFAULT_HEIGHT)));
        String sessionName = loadSystemPropertyOrDefault(SELENOID_SESSION_NAME, "");
        if (!sessionName.isEmpty()) {
            capabilities.setCapability("name", String.format("%s %s", sessionName, AkitaScenario.getInstance().getScenario().getName()));
        }
    }
    try {
        RemoteWebDriver remoteWebDriver = new RemoteWebDriver(
            URI.create(remoteUrl).toURL(),
            capabilities
        );
        remoteWebDriver.setFileDetector(new LocalFileDetector());
        return remoteWebDriver;
    } catch (MalformedURLException e) {
        throw new RuntimeException(e);
    }
}
 
源代码11 项目: neodymium-library   文件: BrowserStatement.java
private boolean isWebDriverStillOpen(WebDriver webDriver)
{
    if (webDriver == null)
    {
        return false;
    }
    try
    {
        RemoteWebDriver driver = (RemoteWebDriver) ((EventFiringWebDriver) webDriver).getWrappedDriver();
        return driver.getSessionId() != null;
    }
    catch (Exception e)
    {
        LOGGER.warn("Couldn't detect if the WebDriver is still open!", e);
        return true;
    }
}
 
源代码12 项目: glowroot   文件: WebDriverSetup.java
public void beforeEachTest(String testName, ScreenshotOnExceptionRule screenshotOnExceptionRule)
        throws Exception {
    if (SauceLabs.useSauceLabs()) {
        // need separate webdriver instance per test in order to report each test separately in
        // saucelabs
        driver = SauceLabs.getWebDriver(testName);
        // need to capture sessionId since it is needed in sauceLabsTestWatcher, after
        // driver.quit() is called
        remoteWebDriverSessionId = ((RemoteWebDriver) driver).getSessionId().toString();
    } else {
        screenshotOnExceptionRule.setDriver(driver);
    }
}
 
源代码13 项目: KITE   文件: Client.java
/**
   * Adds the webdriver to the sessionData map.
   * 
   * @param sessionData
   * @throws KiteGridException
   */
  private void addToSessionMap(Map<WebDriver, Map<String, Object>> sessionData) throws KiteGridException {
    Map<String, Object> map = new HashMap<>();
    map.put("end_point", this);
//    if (!this.isApp()) {
      String node = TestUtils.getNode(
        this.getPaas().getUrl(),
        ((RemoteWebDriver) this.getWebDriver()).getSessionId().toString());
      if (node != null) {
        map.put("node_host", node);
      }
//    }
    sessionData.put(this.getWebDriver(), map);
  }
 
public RemoteWebDriver getDriver() throws MalformedURLException {
    if (null == webDriver) {
        instantiateWebDriver(selectedDriverType);
    }

    return webDriver;
}
 
@Test
public void testLatest(
        @DockerBrowser(type = FIREFOX) RemoteWebDriver driver) {
    driver.get("https://bonigarcia.github.io/selenium-jupiter/");
    assertThat(driver.getTitle(),
            containsString("JUnit 5 extension for Selenium"));
}
 
源代码16 项目: site-infrastructure-tests   文件: PageSteps.java
@Before
public void beforeTest() {
	logger.info("Test setup...");
	ChromeOptions chromeOptions = new ChromeOptions();
	chromeOptions.addArguments("--headless");
	// driver = new ChromeDriver(chromeOptions);
	if (logger.isDebugEnabled()) {
		logger.debug("Initialising ChromeDriver...");
	}
	driver = new RemoteWebDriver(CucumberFeatureTest.getService().getUrl(), chromeOptions);
	_jsExecutor = (JavascriptExecutor) driver;
	logger.info("Test setup complete.");
}
 
源代码17 项目: xframium-java   文件: NLXpathFactory.java
public NLXpath getGenerator( DeviceWebDriver webDriver )
{
    if ( webDriver.getNativeDriver() instanceof RemoteWebDriver )
    {
        if ( webDriver.getContext() == null || webDriver.getContext().contains( "WEB" ) )
            return web;
        else
        {
            if ( webDriver.getDevice().getOs().toUpperCase().equals( "IOS" ) )
            {
                return ios;
            }
            else if ( webDriver.getDevice().getOs().toUpperCase().equals( "ANDROID" ) )
            {
                return android;
            }
        }
    }
    else if ( webDriver.getNativeDriver() instanceof AppiumDriver )
    {
        if ( webDriver.getDevice().getOs().toUpperCase().equals( "IOS" ) )
        {
            return ios;
        }
        else if ( webDriver.getDevice().getOs().toUpperCase().equals( "ANDROID" ) )
        {
            return android;
        }
    }
    
    return null;
}
 
private RemoteWebDriver createRemoteDriver(Capabilities capabilities) {
    AqualityServices.getLocalizedLogger().info("loc.browser.grid");

    ClientFactory clientFactory = new ClientFactory();
    CommandExecutor commandExecutor = new HttpCommandExecutor(
            ImmutableMap.of(),
            browserProfile.getRemoteConnectionUrl(),
            clientFactory);

    RemoteWebDriver driver = getDriver(RemoteWebDriver.class, commandExecutor, capabilities);
    driver.setFileDetector(new LocalFileDetector());
    return driver;
}
 
源代码19 项目: selenium-shutterbug   文件: Browser.java
private void defineCustomCommand(String name, CommandInfo info) {
    try {
        Method defineCommand = HttpCommandExecutor.class.getDeclaredMethod("defineCommand", String.class, CommandInfo.class);
        defineCommand.setAccessible(true);
        defineCommand.invoke(((RemoteWebDriver) this.driver).getCommandExecutor(), name, info);
    } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
        throw new RuntimeException(e);
    }
}
 
源代码20 项目: marathonv5   文件: JavaDriverTest.java
public void javaDriver() {
    driver = new JavaDriver();
    Capabilities capabilities = ((RemoteWebDriver) driver).getCapabilities();
    AssertJUnit.assertEquals("java", capabilities.getBrowserName());
    AssertJUnit.assertEquals(true, capabilities.is("takesScreenshot"));
    AssertJUnit.assertEquals(false, capabilities.is("nativeEvents"));
}
 
源代码21 项目: candybean   文件: AppiumIosTest.java
@Test
public void testSessions() throws Exception {
    HttpGet request = new HttpGet("http://localhost:4723/wd/hub/sessions");
    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpResponse response = httpClient.execute(request);
    HttpEntity entity = response.getEntity();
    JSONObject jsonObject = (JSONObject) new JSONParser().parse(EntityUtils.toString(entity));
    String sessionId = ((RemoteWebDriver) driver).getSessionId().toString();
    assertEquals(sessionId, jsonObject.get("sessionId"));
    httpClient.close();
}
 
@Override
public boolean isAndroid(@NotNull final WebDriver webDriver) {
	final Capabilities remoteWebDriverCapabilities = ((RemoteWebDriver) webDriver).getCapabilities();

	return remoteWebDriverCapabilities.getPlatform().is(Platform.ANDROID)
		// realMobile and Linux means a remote browserstack android device
		|| (remoteWebDriverCapabilities.getPlatform().is(Platform.LINUX)
		&& "true".equals(remoteWebDriverCapabilities.asMap().get("realMobile")));
}
 
源代码23 项目: demo-java   文件: SynchSalsaVerdeTest.java
@Before
public void setup() {
    SauceOptions options = new SauceOptions();
    options.setName(name.getMethodName());
    session = new SauceSession(options);
    RemoteWebDriver driver = session.start();
    browser = new Browser(driver);
}
 
源代码24 项目: selenium-jupiter   文件: SeleniumExtension.java
@Override
public boolean supportsTestTemplate(ExtensionContext context) {
    boolean allWebDriver = false;
    if (context.getTestMethod().isPresent()) {
        allWebDriver = !stream(
                context.getTestMethod().get().getParameterTypes())
                        .map(s -> s.equals(WebDriver.class)
                                || s.equals(RemoteWebDriver.class))
                        .collect(toList()).contains(false);
    }
    return allWebDriver;
}
 
@Test
public void webrtcTest(@Preferences({
        "media.navigator.permission.disabled=true",
        "media.navigator.streams.fake=true" }) @DockerBrowser(type = FIREFOX) RemoteWebDriver driver) {
    driver.get(
            "https://webrtc.github.io/samples/src/content/devices/input-output/");
    assertThat(driver.findElement(By.id("video")).getTagName(),
            equalTo("video"));
}
 
@Override
protected void containerIsStarted(InspectContainerResponse containerInfo) {
    driver = Unreliables.retryUntilSuccess(30, TimeUnit.SECONDS,
            Timeouts.getWithTimeout(10, TimeUnit.SECONDS,
                    () ->
                        () -> new RemoteWebDriver(getSeleniumAddress(), capabilities)));

    if (vncRecordingContainer != null) {
        LOGGER.debug("Starting VNC recording");
        vncRecordingContainer.start();
    }
}
 
源代码27 项目: appiumpro   文件: Edition054_Selenium_Grid_IOS.java
@Test
public void testIOS() throws MalformedURLException {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "iOS");
    caps.setCapability("platformVersion", "11.4");
    caps.setCapability("deviceName", "iPhone 8");
    caps.setCapability("browserName", "Safari");

    driver = new RemoteWebDriver(new URL(HUB_URL), caps);
    actualTest(driver);
}
 
@Test
public void testAndroid() throws MalformedURLException {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "Android");
    caps.setCapability("deviceName", "Android Emulator");
    caps.setCapability("automationName", "UiAutomator2");
    caps.setCapability("browserName", "Chrome");

    driver = new RemoteWebDriver(new URL(HUB_URL), caps);
    actualTest(driver);
}
 
private void instantiateWebDriver(DriverType driverType) throws MalformedURLException {
    System.out.println(" ");
    System.out.println("Local Operating System: " + operatingSystem);
    System.out.println("Local Architecture: " + systemArchitecture);
    System.out.println("Selected Browser: " + selectedDriverType);
    System.out.println("Connecting to Selenium Grid: " + useRemoteWebDriver);
    System.out.println(" ");

    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();

    if (useRemoteWebDriver) {
        URL seleniumGridURL = new URL(System.getProperty("gridURL"));
        String desiredBrowserVersion = System.getProperty("desiredBrowserVersion");
        String desiredPlatform = System.getProperty("desiredPlatform");

        if (null != desiredPlatform && !desiredPlatform.isEmpty()) {
            desiredCapabilities.setPlatform(Platform.valueOf(desiredPlatform.toUpperCase()));
        }

        if (null != desiredBrowserVersion && !desiredBrowserVersion.isEmpty()) {
            desiredCapabilities.setVersion(desiredBrowserVersion);
        }

        desiredCapabilities.setBrowserName(selectedDriverType.toString());
        webDriver = new RemoteWebDriver(seleniumGridURL, desiredCapabilities);
    } else {
        webDriver = driverType.getWebDriverObject(desiredCapabilities);
    }
}
 
源代码30 项目: JTAF-ExtWebDriver   文件: ScreenshotUtils.java
/***
 * Take a screenshot of the browser content. Note that while using RemoteWebDriver sessions (ie: with
 * Sauce Labs), the screenshot will be a full page of content--not only the visible content where the
 * page is scrolled (as when using a non-RemoteWebDriver session).
 * 
 * @param toSaveAs - name of the file to save the picture in (Note: must be PNG)
 * @throws IOException 
 */
public static void takeScreenshotOfPage(File toSaveAs) throws IOException {
	WebDriver wd = SessionManager.getInstance().getCurrentSession().getWrappedDriver();
	File screenshot;
	if(!(wd instanceof RemoteWebDriver)) {
		screenshot = ((TakesScreenshot) wd).getScreenshotAs(OutputType.FILE);		
	}
	else {
		Augmenter augmenter = new Augmenter();
		screenshot = ((TakesScreenshot) augmenter.augment(wd)).getScreenshotAs(OutputType.FILE);
	}
	FileUtils.copyFile(screenshot, toSaveAs);
}
 
 类所在包
 同包方法