类org.openqa.selenium.Capabilities源码实例Demo

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

源代码1 项目: vividus   文件: WebDriverFactory.java
@Override
public WebDriver getRemoteWebDriver(DesiredCapabilities desiredCapabilities)
{
    DesiredCapabilities mergedDesiredCapabilities = getWebDriverCapabilities(false, desiredCapabilities);
    WebDriverType webDriverType = WebDriverManager.detectType(mergedDesiredCapabilities);

    Capabilities capabilities = mergedDesiredCapabilities;
    if (webDriverType != null)
    {
        webDriverType.prepareCapabilities(mergedDesiredCapabilities);
        if (webDriverType == WebDriverType.CHROME)
        {
            WebDriverConfiguration configuration = getWebDriverConfiguration(webDriverType, false);
            ChromeOptions chromeOptions = new ChromeOptions();
            chromeOptions.addArguments(configuration.getCommandLineArguments());
            configuration.getExperimentalOptions().forEach(chromeOptions::setExperimentalOption);
            capabilities = chromeOptions.merge(mergedDesiredCapabilities);
        }
    }
    return createWebDriver(remoteWebDriverFactory.getRemoteWebDriver(remoteDriverUrl, capabilities));
}
 
源代码2 项目: selenium   文件: LocalNode.java
@Override
public NodeStatus getStatus() {
  Map<Capabilities, Integer> stereotypes = factories.stream()
    .collect(groupingBy(SessionSlot::getStereotype, summingInt(caps -> 1)));

  ImmutableSet<NodeStatus.Active> activeSessions = currentSessions.asMap().values().stream()
    .map(slot -> new NodeStatus.Active(
      slot.getStereotype(),
      slot.getSession().getId(),
      slot.getSession().getCapabilities()))
    .collect(toImmutableSet());

  return new NodeStatus(
    getId(),
    externalUri,
    maxSessionCount,
    stereotypes,
    activeSessions,
    registrationSecret);
}
 
@Override
public void resolve() {
    try {
        Optional<Object> testInstance = context.getTestInstance();
        Optional<Capabilities> capabilities = annotationsReader
                .getCapabilities(parameter, testInstance);
        InternetExplorerOptions internetExplorerOptions = (InternetExplorerOptions) getOptions(
                parameter, testInstance);
        if (capabilities.isPresent()) {
            internetExplorerOptions.merge(capabilities.get());
        }
        object = new InternetExplorerDriver(internetExplorerOptions);
    } catch (Exception e) {
        handleException(e);
    }
}
 
源代码4 项目: selenium   文件: JsonTest.java
@Test
public void shouldParseCapabilitiesWithLoggingPreferences() {
  String caps = String.format(
      "{\"%s\": {" +
      "\"browser\": \"WARNING\"," +
      "\"client\": \"DEBUG\", " +
      "\"driver\": \"ALL\", " +
      "\"server\": \"OFF\"}}",
      CapabilityType.LOGGING_PREFS);

  Capabilities converted = new Json().toType(caps, Capabilities.class);

  LoggingPreferences lp =
      (LoggingPreferences) converted.getCapability(CapabilityType.LOGGING_PREFS);
  assertThat(lp).isNotNull();
  assertThat(lp.getLevel(BROWSER)).isEqualTo(WARNING);
  assertThat(lp.getLevel(CLIENT)).isEqualTo(FINE);
  assertThat(lp.getLevel(DRIVER)).isEqualTo(ALL);
  assertThat(lp.getLevel(SERVER)).isEqualTo(OFF);
}
 
源代码5 项目: vividus   文件: VividusWebDriverFactoryTests.java
private void runCreateTest(boolean remoteExecution, String browserName) throws Exception
{
    vividusWebDriverFactory.setRemoteExecution(remoteExecution);
    vividusWebDriverFactory.setWebDriverEventListeners(List.of(webDriverEventListener));

    when(bddRunContext.getRunningStory()).thenReturn(createRunningStory(browserName));
    EventFiringWebDriver eventFiringWebDriver = mock(EventFiringWebDriver.class);
    PowerMockito.whenNew(EventFiringWebDriver.class).withArguments(driver).thenReturn(eventFiringWebDriver);
    Options options = mock(Options.class);
    when(eventFiringWebDriver.manage()).thenReturn(options);
    Window window = mock(Window.class);
    when(options.window()).thenReturn(window);
    when(eventFiringWebDriver.getCapabilities()).thenReturn(mock(Capabilities.class));
    BrowserWindowSize windowSize = new BrowserWindowSize("1920x1080");
    when(browserWindowSizeProvider.getBrowserWindowSize(remoteExecution))
            .thenReturn(windowSize);
    VividusWebDriver vividusWebDriver = vividusWebDriverFactory.create();
    assertEquals(eventFiringWebDriver, vividusWebDriver.getWrappedDriver());
    verify(eventFiringWebDriver).register(webDriverEventListener);
    assertEquals(remoteExecution, vividusWebDriver.isRemote());
    verify(webDriverManagerContext).reset(WebDriverManagerParameter.DESIRED_CAPABILITIES);
    verify(webDriverManager).resize(eventFiringWebDriver, windowSize);
}
 
源代码6 项目: selenium   文件: SyntheticNewSessionPayloadTest.java
@Test
public void shouldExpandAllW3CMatchesToFirstMatchesAndRemoveAlwaysMatchIfSynthesizingAPayload() {
  Map<String, Object> payload = ImmutableMap.of(
    // OSS capabilities request a chrome webdriver
    "desiredCapabilities", ImmutableMap.of("browserName", "chrome"),
    // Yet the w3c ones ask for IE and edge
    "capabilities", ImmutableMap.of(
          "alwaysMatch", ImmutableMap.of("se:cake", "cheese"),
          "firstMatch", Arrays.asList(
            ImmutableMap.of("browserName", "edge"),
            ImmutableMap.of("browserName", "cheese"))));

  try (NewSessionPayload newSession = NewSessionPayload.create(payload)) {
    List<Capabilities> allCaps = newSession.stream().collect(toList());

    assertThat(allCaps).containsExactlyInAnyOrder(
        new ImmutableCapabilities("browserName", "cheese", "se:cake", "cheese"),
        new ImmutableCapabilities("browserName", "chrome"),
        new ImmutableCapabilities("browserName", "edge", "se:cake", "cheese"));
  }
}
 
源代码7 项目: selenium   文件: Host.java
public DistributorStatus.NodeSummary asSummary() {
  Map<Capabilities, Integer> stereotypes = new HashMap<>();
  Map<Capabilities, Integer> used = new HashMap<>();

  slots.forEach(slot -> {
    stereotypes.compute(slot.getStereotype(), (key, curr) -> curr == null ? 1 : curr + 1);
    if (slot.getStatus() != AVAILABLE) {
      used.compute(slot.getStereotype(), (key, curr) -> curr == null ? 1 : curr + 1);
    }
  });

  return new DistributorStatus.NodeSummary(
      nodeId,
      uri,
      getHostStatus() == UP,
      maxSessionCount,
      stereotypes,
      used);
}
 
源代码8 项目: selenium-jupiter   文件: RemoteDriverHandler.java
private void resolveOtherThanDocker(Optional<Object> testInstance)
        throws IllegalAccessException, MalformedURLException {
    Optional<Capabilities> capabilities = annotationsReader
            .getCapabilities(parameter, testInstance);

    Optional<URL> url;
    if (browser != null && browser.getUrl() != null
            && !browser.getUrl().isEmpty()) {
        url = Optional.of(new URL(browser.getUrl()));
        capabilities = Optional.of(new DesiredCapabilities(
                browser.getType(), browser.getVersion(), ANY));
    } else {
        url = annotationsReader.getUrl(parameter, testInstance,
                config.getSeleniumServerUrl());
    }

    if (url.isPresent() && capabilities.isPresent()) {
        object = resolveRemote(url.get(), capabilities.get());
    } else {
        object = resolveGeneric();
    }
}
 
源代码9 项目: selenium   文件: CapabilitiesComparatorTest.java
@Test
public void shouldPickCorrectBrowser() {
  Capabilities chrome = new DesiredCapabilities(BrowserType.CHROME, "10", Platform.ANY);
  Capabilities firefox = new DesiredCapabilities(BrowserType.FIREFOX, "10", Platform.ANY);
  Capabilities opera = new DesiredCapabilities(BrowserType.OPERA_BLINK, "10", Platform.ANY);
  List<Capabilities> list = asList(chrome, firefox, opera);

  DesiredCapabilities desired = new DesiredCapabilities();

  desired.setBrowserName(BrowserType.CHROME);
  assertThat(getBestMatch(desired, list)).isEqualTo(chrome);

  desired.setBrowserName(BrowserType.FIREFOX);
  assertThat(getBestMatch(desired, list)).isEqualTo(firefox);

  desired.setBrowserName(BrowserType.OPERA_BLINK);
  assertThat(getBestMatch(desired, list)).isEqualTo(opera);
}
 
源代码10 项目: selenium   文件: DefaultSession.java
private Map<String, Object> getDescription(WebDriver instance, Capabilities capabilities) {
  DesiredCapabilities caps = new DesiredCapabilities(capabilities.asMap());
  caps.setJavascriptEnabled(instance instanceof JavascriptExecutor);
  if (instance instanceof TakesScreenshot) {
    caps.setCapability(CapabilityType.TAKES_SCREENSHOT, true);
  }
  if (instance instanceof LocationContext) {
    caps.setCapability(CapabilityType.SUPPORTS_LOCATION_CONTEXT, true);
  }
  if (instance instanceof ApplicationCache) {
    caps.setCapability(CapabilityType.SUPPORTS_APPLICATION_CACHE, true);
  }
  if (instance instanceof NetworkConnection) {
    caps.setCapability(CapabilityType.SUPPORTS_NETWORK_CONNECTION, true);
  }
  if (instance instanceof WebStorage) {
    caps.setCapability(CapabilityType.SUPPORTS_WEB_STORAGE, true);
  }
  if (instance instanceof Rotatable) {
    caps.setCapability(CapabilityType.ROTATABLE, true);
  }
  if (instance instanceof HasTouchScreen) {
    caps.setCapability(CapabilityType.HAS_TOUCHSCREEN, true);
  }
  return caps.asMap();
}
 
@Test
public void shouldCreateInternetExplorerAndStartService() throws Exception {
    InternetExplorerDriver mockInternetExplorerDriver = mock(InternetExplorerDriver.class);
    whenNew(InternetExplorerDriver.class).withParameterTypes(InternetExplorerDriverService.class, Capabilities.class).withArguments(isA(InternetExplorerDriverService.class), isA(Capabilities.class)).thenReturn(mockInternetExplorerDriver);
    InternetExplorerDriverService.Builder mockServiceBuilder = mock(InternetExplorerDriverService.Builder.class);
    whenNew(InternetExplorerDriverService.Builder.class).withNoArguments().thenReturn(mockServiceBuilder);
    when(mockServiceBuilder.usingDriverExecutable(isA(File.class))).thenReturn(mockServiceBuilder);
    InternetExplorerDriverService mockService = mock(InternetExplorerDriverService.class);
    when(mockServiceBuilder.build()).thenReturn(mockService);

    final InternetExplorerDriver browser = config.createBrowser();

    assertThat(browser, is(mockInternetExplorerDriver));
    verifyNew(InternetExplorerDriver.class, times(1)).withArguments(isA(InternetExplorerDriverService.class), isA(Capabilities.class));
    verify(mockServiceBuilder, times(1)).build();
    assertThat(config.getServices().size(), is(1));
    assertThat(config.getServices().values(), hasItem(mockService));
}
 
源代码12 项目: selenium   文件: RemoteWebDriver.java
@Override
public String toString() {
  Capabilities caps = getCapabilities();
  if (caps == null) {
    return super.toString();
  }

  // w3c name first
  Object platform = caps.getCapability(PLATFORM_NAME);
  if (!(platform instanceof String)) {
    platform = caps.getCapability(PLATFORM);
  }
  if (platform == null) {
    platform = "unknown";
  }

  return String.format(
      "%s: %s on %s (%s)",
      getClass().getSimpleName(),
      caps.getBrowserName(),
      platform,
      getSessionId());
}
 
protected BiFunction<URL, Capabilities, RemoteWebDriver> getRemoteWebDriverConstructor() {
    if (webDriverConstructor == null) {
        if (isPropertySet(SELENIUM_DRIVER_CLASS)) {
            String driverClass = getProperty(SELENIUM_DRIVER_CLASS);
            try {
                Class<?> clazz = Class.forName(driverClass);
                if (RemoteWebDriver.class.isAssignableFrom(clazz)) {
                    Class<? extends RemoteWebDriver> rmd = (Class<? extends RemoteWebDriver>) clazz;
                    webDriverConstructor = new LambdaMetaHelper().getConstructor(rmd, URL.class, Capabilities.class);
                } else {
                    throw new IllegalArgumentException(driverClass + " does not implement RemoteWebDiver");
                }
            } catch (Exception e) {
                throw new IllegalArgumentException("Unable to create RemoteWebDriver using: " + driverClass, e);
            }
        } else {
            webDriverConstructor = RemoteWebDriver::new;
        }
    }

    return webDriverConstructor;
}
 
源代码14 项目: coteafs-appium   文件: Device.java
@SuppressWarnings("unchecked")
private D init(final URL url, final Capabilities capability) {
    LOG.trace("Initializing driver...");
    final TypeToken<D> token = new TypeToken<D>(getClass()) {
        private static final long serialVersionUID = 1562415938665085306L;
    };
    final Class<D> cls = (Class<D>) token.getRawType();
    final Class<?>[] argTypes = new Class<?>[] { URL.class, Capabilities.class };
    try {
        final Constructor<D> ctor = cls.getDeclaredConstructor(argTypes);
        return ctor.newInstance(url, capability);
    } catch (final NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
        fail(DeviceDriverInitializationFailedError.class, "Error occured while initializing device driver.", e);
    }
    return null;
}
 
源代码15 项目: selenium   文件: DefaultSession.java
private DefaultSession(
    final DriverFactory factory,
    TemporaryFilesystem tempFs,
    final Capabilities capabilities) {
  this.knownElements = new KnownElements();
  this.tempFs = tempFs;
  final BrowserCreator browserCreator = new BrowserCreator(factory, capabilities);

  // Ensure that the browser is created on the single thread.
  EventFiringWebDriver initialDriver = browserCreator.call();

  if (!isQuietModeEnabled(browserCreator, capabilities)) {
    // Memo to self; this is not a constructor escape of "this" - probably ;)
    initialDriver.register(new SnapshotScreenListener(this));
  }

  this.driver = initialDriver;
  this.capabilities = browserCreator.getCapabilityDescription();
  this.sessionId = browserCreator.getSessionId();
}
 
源代码16 项目: adf-selenium   文件: WebDriverResource.java
@Override
protected void before() throws Throwable {
    logger.fine("starting browser...");
    driver = createDriver(locale.toLanguageTag());
    if (logger.isLoggable(Level.FINE)) {
        Capabilities capabilities = driver.getCapabilities();
        logger.fine("running " + capabilities.getBrowserName() + " version " + capabilities.getVersion() + " on " +
                    capabilities.getPlatform());
    }
    DialogManager.init(driver, 10000); // timeout of 10 seconds
    driver.manage().window().setSize(new Dimension(width, height));
}
 
源代码17 项目: selenium   文件: RemoteWebDriverBuilder.java
private Map<String, Object> validate(Capabilities options) {
  return options.asMap().entrySet().stream()
      // Ensure that the keys are ok
      .peek(
          entry -> {
            if (!OK_KEYS.test(entry.getKey())) {
              throw new IllegalArgumentException(
                  "Capability key is not a valid w3c key: " + entry.getKey());
            }
          })
      // And remove null values, as these are ignored.
      .filter(entry -> entry.getValue() != null)
      .collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
}
 
源代码18 项目: bobcat   文件: DesiredCapabilitiesProviderTest.java
@Test
public void mapCapabilitiesTest() {
  properties.clear();
  properties.put("webdriver.map.cap.themap.key1", "mvalue1");
  properties.put("webdriver.map.cap.themap.key2", "mvalue2");

  Capabilities capabilities = tested.get();

  assertThat(capabilities.getCapability(THEMAP)).isInstanceOf(Map.class);
  assertThat(((Map<?, ?>) capabilities.getCapability(THEMAP)).get("key1")).isEqualTo("mvalue1");
  assertThat(((Map<?, ?>) capabilities.getCapability(THEMAP)).get("key2")).isEqualTo("mvalue2");
}
 
源代码19 项目: vividus   文件: ScreenshotFileNameGeneratorTests.java
@Test
void testGenerateScreenshotFileNameWithBrowserName()
{
    Capabilities capabilities = mock(Capabilities.class);
    Dimension dimension = new Dimension(WIDTH, HEIGHT);
    when(webDriverManager.getSize()).thenReturn(dimension);
    when(webDriverManager.getCapabilities()).thenReturn(capabilities);
    String browserName = "firefox";
    when(capabilities.getBrowserName()).thenReturn(browserName);
    String screenshotFileName = screenshotFileNameGenerator.generateScreenshotFileName(SCREENSHOT_NAME);
    assertTrue(screenshotFileName
            .matches(FILE_DATE_PATTERN + SCREENSHOT_NAME + SEPARATOR + browserName + WIDTH_X_HEIGHT_EXTENSION));
}
 
源代码20 项目: selenium   文件: NodeStatus.java
private List<Map<String, Object>> asCapacity(Map<Capabilities, Integer> toConvert) {
  ImmutableList.Builder<Map<String, Object>> toReturn = ImmutableList.builder();
  toConvert.forEach((caps, count) -> toReturn.add(ImmutableMap.of(
      "capabilities", caps,
      "count", count)));
  return toReturn.build();
}
 
源代码21 项目: selenium   文件: NewSessionPayloadTest.java
@Test
public void shouldCorrectlyExtractPlatformFromW3cCapabilities() {
  List<Capabilities> capabilities = create(singletonMap(
      "capabilities", singletonMap(
          "alwaysMatch", singletonMap(
              "platformName", "linux"))));

  assertEquals(Platform.LINUX, capabilities.get(0).getPlatform());
  assertNull(capabilities.get(0).getCapability("platform"));
  assertEquals("linux", capabilities.get(0).getCapability("platformName"));
}
 
源代码22 项目: aquality-selenium-java   文件: BrowserFactory.java
default <T extends RemoteWebDriver> T getDriver(Class<T> driverClass, CommandExecutor commandExecutor, Capabilities capabilities) {
    return AqualityServices.get(IActionRetrier.class).doWithRetry(() -> {
        try {
            if (commandExecutor != null) {
                return driverClass.getDeclaredConstructor(CommandExecutor.class, Capabilities.class).newInstance(commandExecutor, capabilities);
            }

            return driverClass.getDeclaredConstructor(Capabilities.class).newInstance(capabilities);
        } catch (ReflectiveOperationException e) {
            throw new UnsupportedOperationException(String.format("Cannot instantiate driver with type '%1$s'.", driverClass), e);
        }
    }, Collections.emptyList());
}
 
源代码23 项目: selenium   文件: DistributorStatus.java
private static Map<Capabilities, Integer> readCapabilityCounts(JsonInput input) {
  Map<Capabilities, Integer> toReturn = new HashMap<>();

  input.beginArray();
  while (input.hasNext()) {
    Capabilities caps = null;
    int count = 0;
    input.beginObject();
    while (input.hasNext()) {
      switch (input.nextName()) {
        case "capabilities":
          caps = input.read(Capabilities.class);
          break;

        case "count":
          count = input.nextNumber().intValue();
          break;

        default:
          input.skipValue();
          break;
      }
    }
    input.endObject();

    toReturn.put(caps, count);
  }
  input.endArray();

  return toReturn;
}
 
源代码24 项目: selenium   文件: DefaultSessionTest.java
@Test
public void shouldClearTempFsWhenSessionCloses() {
  final DriverFactory factory = mock(DriverFactory.class);
  when(factory.newInstance(any(Capabilities.class))).thenReturn(mock(WebDriver.class));
  final TemporaryFilesystem tempFs = mock(TemporaryFilesystem.class);

  Session session = DefaultSession.createSession(
      factory, tempFs,
      new DesiredCapabilities(BrowserType.FIREFOX, "10", Platform.ANY));

  session.close();
  verify(tempFs).deleteTemporaryFiles();
  verify(tempFs).deleteBaseDir();
}
 
源代码25 项目: selenium   文件: Augmenter.java
public Augmentation(
  Predicate<Capabilities> whenMatches,
  Class<X> interfaceClass,
  BiFunction<Capabilities, ExecuteMethod, X> implementation) {
  this.whenMatches = Require.nonNull("Capabilities predicate", whenMatches);
  this.interfaceClass = Require.nonNull("Interface to implement", interfaceClass);
  this.implementation = Require.nonNull("Interface implementation", implementation);

  Require.precondition(
    interfaceClass.isInterface(),
    "%s must be an interface, not a concrete class",
    interfaceClass);
}
 
源代码26 项目: qaf   文件: UiDriverFactory.java
private static void onInitializationFailure(Capabilities desiredCapabilities, Throwable e,
		Collection<QAFWebDriverCommandListener> listners) {
	if ((listners != null) && !listners.isEmpty()) {
		for (QAFWebDriverCommandListener listener : listners) {
			listener.onInitializationFailure(desiredCapabilities, e);
		}
	}

}
 
源代码27 项目: selenium   文件: FirefoxOptionsTest.java
@Test
public void canInitFirefoxOptionsWithCapabilitiesThatContainFirefoxOptionsAsMap() {
  FirefoxProfile profile = new FirefoxProfile();
  Capabilities caps = new ImmutableCapabilities(
      FIREFOX_OPTIONS, ImmutableMap.of("profile", profile));

  FirefoxOptions options = new FirefoxOptions(caps);

  assertThat(options.getProfile()).isSameAs(profile);
}
 
源代码28 项目: selenium   文件: SafariOptions.java
public SafariOptions(Capabilities source) {
  this();

  source.asMap().forEach((key, value)-> {
    if (CAPABILITY.equals(key) && value instanceof Map) {

      @SuppressWarnings("unchecked")
      Map<? extends String, ?> map = (Map<? extends String, ?>) value;
      options.putAll(map);
    } else if (value != null) {
      setCapability(key, value);
    }
  });
}
 
源代码29 项目: selenium   文件: OneShotNode.java
public static Node create(Config config) {
  LoggingOptions loggingOptions = new LoggingOptions(config);
  EventBusOptions eventOptions = new EventBusOptions(config);
  BaseServerOptions serverOptions = new BaseServerOptions(config);
  NodeOptions nodeOptions = new NodeOptions(config);

  Map<String, Object> raw = new Json().toType(
    config.get("k8s", "stereotype")
      .orElseThrow(() -> new ConfigException("Unable to find node stereotype")),
    MAP_TYPE);

  Capabilities stereotype = new ImmutableCapabilities(raw);

  Optional<String> driverName = config.get("k8s", "driver_name").map(String::toLowerCase);

  // Find the webdriver info corresponding to the driver name
  WebDriverInfo driverInfo = StreamSupport.stream(ServiceLoader.load(WebDriverInfo.class).spliterator(), false)
    .filter(info -> info.isSupporting(stereotype))
    .filter(info -> driverName.map(name -> name.equals(info.getDisplayName().toLowerCase())).orElse(true))
    .findFirst()
    .orElseThrow(() -> new ConfigException(
      "Unable to find matching driver for %s and %s", stereotype, driverName.orElse("any driver")));

  LOG.info(String.format("Creating one-shot node for %s with stereotype %s", driverInfo, stereotype));
  LOG.info("Grid URI is: " + nodeOptions.getPublicGridUri());

  return new OneShotNode(
    loggingOptions.getTracer(),
    eventOptions.getEventBus(),
    serverOptions.getRegistrationSecret(),
    UUID.randomUUID(),
    serverOptions.getExternalUri(),
    nodeOptions.getPublicGridUri().orElseThrow(() -> new ConfigException("Unable to determine public grid address")),
    stereotype,
    driverInfo);
}
 
@Test
public void shouldCreateRemoteDriver() throws Exception {
	config.setSeleniumGridUrl("http://my.awesomegrid.com");
    RemoteWebDriver mockRemoteWebDriver = Mockito.mock(RemoteWebDriver.class);
    whenNew(RemoteWebDriver.class)
        .withParameterTypes(URL.class, Capabilities.class)
        .withArguments(isA(URL.class), isA(Capabilities.class))
        .thenReturn(mockRemoteWebDriver);

    final RemoteWebDriver browser = config.createBrowser();

    assertThat(browser, is(mockRemoteWebDriver));
    verifyNew(RemoteWebDriver.class, times(1)).withArguments(isA(URL.class), isA(Capabilities.class));
}
 
 类所在包
 同包方法