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

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

源代码1 项目: vividus   文件: WebDriverManager.java
@Override
public void resize(WebDriver webDriver, BrowserWindowSize browserWindowSize)
{
    if (isElectronApp() || isMobile(WebDriverUtil.unwrap(webDriver, HasCapabilities.class).getCapabilities()))
    {
        return;
    }
    Window window = webDriver.manage().window();
    if (browserWindowSize == null)
    {
        window.maximize();
    }
    else
    {
        window.setSize(browserWindowSize.toDimension());
    }
}
 
源代码2 项目: vividus   文件: WebDriverFactoryTests.java
@Test
void testGetWebDriverWithWebDriverType() throws Exception
{
    mockCapabilities((HasCapabilities) driver);
    WebDriverType webDriverType = mock(WebDriverType.class);
    webDriverFactory.setWebDriverType(webDriverType);
    WebDriverConfiguration configuration = mock(WebDriverConfiguration.class);
    Map<String, Object> capablities = Map.of(KEY1, TRUE, KEY2, FALSE);
    when(propertyParser.getPropertyValuesTreeByPrefix(SELENIUM_CAPABILITIES)).thenReturn(capablities);
    configuration.setBinaryPath(Optional.of(PATH));
    injectConfigurations(webDriverType, configuration);
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities(Map.of(KEY2, true));
    when(webDriverType.getWebDriver(new DesiredCapabilities(Map.of(KEY1, Boolean.TRUE, KEY2,  Boolean.TRUE)),
            configuration)).thenReturn(driver);
    mockTimeouts(driver);
    WebDriver actualDriver = webDriverFactory.getWebDriver(desiredCapabilities);
    assertThat(actualDriver, instanceOf(TextFormattingWebDriver.class));
    assertEquals(driver, ((WrapsDriver) actualDriver).getWrappedDriver());
    assertLogger();
    verify(propertyParser, never()).getPropertyValuesTreeByPrefix(SELENIUM_GRID_CAPABILITIES);
}
 
源代码3 项目: vividus   文件: WebDriverFactoryTests.java
@Test
void testGetWebDriverWithWebDriverTypeAndBinaryPathConfiguration()
{
    mockCapabilities((HasCapabilities) driver);
    WebDriverType webDriverType = mock(WebDriverType.class);
    when(webDriverType.isBinaryPathSupported()).thenReturn(Boolean.TRUE);
    webDriverFactory.setWebDriverType(webDriverType);
    lenient().when(propertyParser.getPropertyValue("web.driver." + webDriverType + ".driver-executable-path"))
            .thenReturn(PATH);
    lenient().when(propertyParser.getPropertyValue(String.format(BINARY_PATH_PROPERTY_FORMAT, webDriverType)))
            .thenReturn(PATH);
    DesiredCapabilities desiredCapabilities = mock(DesiredCapabilities.class);
    when(webDriverType.getWebDriver(eq(new DesiredCapabilities()),
            argThat(config -> Optional.of(PATH).equals(config.getBinaryPath())
                    && Optional.of(PATH).equals(config.getDriverExecutablePath())))).thenReturn(driver);
    Timeouts timeouts = mockTimeouts(driver);
    assertEquals(driver,
            ((WrapsDriver) webDriverFactory.getWebDriver(desiredCapabilities)).getWrappedDriver());
    verify(timeoutConfigurer).configure(timeouts);
    assertLogger();
}
 
源代码4 项目: vividus   文件: WebDriverFactoryTests.java
@Test
void testGetWebDriverWithWebDriverTypeAndCommandLineArgumentsConfiguration()
{
    mockCapabilities((HasCapabilities) driver);
    WebDriverType webDriverType = mock(WebDriverType.class);
    when(webDriverType.isCommandLineArgumentsSupported()).thenReturn(Boolean.TRUE);
    webDriverFactory.setWebDriverType(webDriverType);
    lenient().when(propertyParser.getPropertyValue(String.format(BINARY_PATH_PROPERTY_FORMAT, webDriverType)))
            .thenReturn(null);
    lenient().when(
            propertyParser.getPropertyValue(String.format(COMMAND_LINE_ARGUMENTS_PROPERTY_FORMAT, webDriverType)))
            .thenReturn(ARGS);
    DesiredCapabilities desiredCapabilities = mock(DesiredCapabilities.class);
    when(webDriverType.getWebDriver(eq(new DesiredCapabilities()),
            argThat(config -> Arrays.equals(new String[] { ARG_1, ARG_2 }, config.getCommandLineArguments()))))
            .thenReturn(driver);
    Timeouts timeouts = mockTimeouts(driver);
    assertEquals(driver,
            ((WrapsDriver) webDriverFactory.getWebDriver(desiredCapabilities)).getWrappedDriver());
    verify(timeoutConfigurer).configure(timeouts);
    assertLogger();
}
 
源代码5 项目: vividus   文件: WebDriverFactoryTests.java
@Test
void testGetWebDriverWithWebDriverTypeAndExperimentalOptionsConfiguration()
{
    mockCapabilities((HasCapabilities) driver);
    WebDriverType webDriverType = mock(WebDriverType.class);
    webDriverFactory.setWebDriverType(webDriverType);
    lenient().when(propertyParser.getPropertyValue(String.format(BINARY_PATH_PROPERTY_FORMAT, webDriverType)))
            .thenReturn(null);
    lenient().when(
            propertyParser.getPropertyValue(String.format(EXPERIMENTAL_OPTIONS_PROPERTY_FORMAT, webDriverType)))
            .thenReturn("{\"mobileEmulation\": {\"deviceName\": \"iPhone 8\"}}");
    DesiredCapabilities desiredCapabilities = mock(DesiredCapabilities.class);
    when(webDriverType.getWebDriver(eq(new DesiredCapabilities()),
            argThat(config ->  Map.of("mobileEmulation", Map.of("deviceName", "iPhone 8"))
                    .equals(config.getExperimentalOptions())))).thenReturn(driver);
    Timeouts timeouts = mockTimeouts(driver);
    assertEquals(driver,
            ((WrapsDriver) webDriverFactory.getWebDriver(desiredCapabilities)).getWrappedDriver());
    verify(timeoutConfigurer).configure(timeouts);
    assertLogger();
}
 
源代码6 项目: vividus   文件: WebDriverManagerTests.java
@Test
void testGetSize()
{
    MobileDriver<?> mobileDriver = mock(MobileDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    Set<String> contexts = new HashSet<>();
    contexts.add(WEBVIEW_CONTEXT);
    contexts.add(NATIVE_APP_CONTEXT);
    mockMobileDriverContext(mobileDriver, WEBVIEW_CONTEXT, contexts);
    lenient().when(webDriverManagerContext.getParameter(WebDriverManagerParameter.SCREEN_SIZE)).thenReturn(null);
    lenient().when(webDriverManagerContext.getParameter(WebDriverManagerParameter.ORIENTATION))
            .thenReturn(ScreenOrientation.PORTRAIT);
    WebDriverManager spy = spyIsMobile(true);
    Window window = mock(Window.class);
    when(mockOptions(mobileDriver).window()).thenReturn(window);
    when(window.getSize()).thenReturn(mock(Dimension.class));
    assertNotNull(spy.getSize());
}
 
@TestFactory
Stream<DynamicTest> testCleanBeforeNavigate()
{
    WebDriver driver = mock(WebDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    Consumer<Runnable> test = methodUnderTest ->
    {
        Options options = mock(Options.class);
        when(driver.manage()).thenReturn(options);
        Logs logs = mock(Logs.class);
        when(options.logs()).thenReturn(logs);
        when(logs.get(LogType.BROWSER)).thenReturn(mock(LogEntries.class));
        methodUnderTest.run();
    };
    return Stream.of(
            dynamicTest("beforeNavigateBack", () -> test.accept(() -> listener.beforeNavigateBack(driver))),
            dynamicTest("beforeNavigateForward", () -> test.accept(() -> listener.beforeNavigateForward(driver))),
            dynamicTest("beforeNavigateRefresh", () -> test.accept(() -> listener.beforeNavigateRefresh(driver))),
            dynamicTest("beforeNavigateTo", () -> test.accept(() -> listener.beforeNavigateTo("url", driver))));
}
 
源代码8 项目: Selenium-Foundation   文件: PageSourceUtils.java
/**
 * Determine if the specified driver is capable of producing page source.
 * 
 * @param optDriver optional web driver object
 * @param logger SLF4J logger object; may be 'null'
 * @return 'true' if driver can produce page source; otherwise 'false
 */
public static boolean canGetArtifact(final Optional<WebDriver> optDriver, final Logger logger) {
    if (optDriver.isPresent()) {
        WebDriver driver = optDriver.get();
        if (driver instanceof HasCapabilities) {
            Capabilities caps = ((HasCapabilities) driver).getCapabilities();
            // if driver explicitly reports that it cannot produce page source
            if (Boolean.FALSE.equals(caps.getCapability(TAKES_ELEMENT_SCREENSHOT))) {
                if (logger != null) {
                    logger.warn("This driver is not capable of producing page source."); //NOSONAR
                }
            } else {
                return true;
            }
        } else {
            if (logger != null) {
                logger.warn("Unable to determine if this driver can capture page source."); //NOSONAR
            }
        }
    }
    return false;
}
 
源代码9 项目: find   文件: FindSessionITCase.java
@Test
public void testDocumentPreview(){
    assumeThat(((HasCapabilities) getDriver()).getCapabilities().getBrowserName(), is("firefox"));

    final ListView results = findService.search("The Season");
    final FindResult searchResult = results.searchResult(1);

    deleteCookies();

    final DocumentViewer docViewer = searchResult.openDocumentPreview();
    final Frame frame = new Frame(getDriver(), docViewer.frame());
    frame.operateOnContent(content -> {
        verifyThat("Authentication Fail frame displayed correctly", content, allOf(
                containsText("403"),
                containsText("Authentication Failed"),
                containsText("You do not have permission to view this page")
        ));
        return null;
    });
}
 
源代码10 项目: selenium   文件: InMemorySession.java
private InMemorySession(WebDriver driver, Capabilities capabilities, Dialect downstream) {
  this.driver = Require.nonNull("Driver", driver);

  Capabilities caps;
  if (driver instanceof HasCapabilities) {
    caps = ((HasCapabilities) driver).getCapabilities();
  } else {
    caps = capabilities;
  }

  this.capabilities = caps.asMap().entrySet().stream()
      .filter(e -> e.getValue() != null)
      .collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));

  this.id = new SessionId(UUID.randomUUID().toString());
  this.downstream = Require.nonNull("Downstream dialect", downstream);

  File tempRoot = new File(StandardSystemProperty.JAVA_IO_TMPDIR.value(), id.toString());
  Require.stateCondition(tempRoot.mkdirs(), "Could not create directory %s", tempRoot);
  this.filesystem = TemporaryFilesystem.getTmpFsBasedOn(tempRoot);

  this.handler = new JsonHttpCommandHandler(
      new PretendDriverSessions(),
      LOG);
}
 
源代码11 项目: vividus   文件: DelegatingWebDriver.java
@Override
public Capabilities getCapabilities()
{
    if (wrappedDriver instanceof HasCapabilities)
    {
        return ((HasCapabilities) wrappedDriver).getCapabilities();
    }
    throw new IllegalStateException(DRIVER_NOT_IMPLEMENT_HAS_CAPABILITIES);
}
 
源代码12 项目: vividus   文件: WebDriverFactory.java
private WebDriver createWebDriver(WebDriver webDriver)
{
    WebDriver driver = new TextFormattingWebDriver(webDriver);
    timeoutConfigurer.configure(driver.manage().timeouts());

    LOGGER.atInfo()
          .addArgument(() -> jsonUtils
                  .toPrettyJson(WebDriverUtil.unwrap(driver, HasCapabilities.class).getCapabilities().asMap()))
          .log("Session capabilities:\n{}");
    return driver;
}
 
源代码13 项目: vividus   文件: WebDriverFactoryTests.java
@Test
void testGetWebDriverWithWebDriverTypeWOBinary() throws Exception
{
    mockCapabilities((HasCapabilities) driver);
    WebDriverConfiguration configuration = new WebDriverConfiguration();
    WebDriverType webDriverType = mock(WebDriverType.class);
    webDriverFactory.setWebDriverType(webDriverType);
    injectConfigurations(webDriverType, configuration);
    DesiredCapabilities desiredCapabilities = mock(DesiredCapabilities.class);
    when(webDriverType.getWebDriver(new DesiredCapabilities(), configuration)).thenReturn(driver);
    Timeouts timeouts = mockTimeouts(driver);
    assertEquals(driver, ((WrapsDriver) webDriverFactory.getWebDriver(desiredCapabilities)).getWrappedDriver());
    verify(timeoutConfigurer).configure(timeouts);
    assertLogger();
}
 
源代码14 项目: vividus   文件: WebDriverManagerTests.java
private WebDriver mockWebDriverHavingCapabilities(Map<String, Object> capabilities)
{
    Capabilities capabilitiesMock = mock(Capabilities.class);
    capabilities.forEach((capabilityType, capabilityValue) ->
            setCapabilities(capabilitiesMock, capabilityType, capabilityValue));

    WebDriver webDriver = mockWebDriverHavingCapabilities();
    when(((HasCapabilities) webDriver).getCapabilities()).thenReturn(capabilitiesMock);
    return webDriver;
}
 
源代码15 项目: vividus   文件: WebDriverManagerTests.java
@Test
void shouldNotResizeElectronApps()
{
    webDriverManager.setElectronApp(true);
    WebDriver webDriver = mock(WebDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    BrowserWindowSize browserWindowSize = mock(BrowserWindowSize.class);
    webDriverManager.resize(browserWindowSize);
    verify(webDriver, never()).manage();
    verifyNoInteractions(webDriverProvider);
}
 
源代码16 项目: vividus   文件: WebDriverManagerTests.java
@Test
void testPerformActionInNativeContext()
{
    MobileDriver<?> mobileDriver = mock(MobileDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    Set<String> contexts = new HashSet<>();
    contexts.add(WEBVIEW_CONTEXT);
    contexts.add(NATIVE_APP_CONTEXT);
    mockMobileDriverContext(mobileDriver, WEBVIEW_CONTEXT, contexts);
    WebDriverManager spy = spyIsMobile(true);
    spy.performActionInNativeContext(webDriver -> assertEquals(mobileDriver, webDriver));
    verify(mobileDriver).context(NATIVE_APP_CONTEXT);
    verify(mobileDriver).context(WEBVIEW_CONTEXT);
}
 
源代码17 项目: vividus   文件: WebDriverManagerTests.java
@Test
void testPerformActionInNativeContextException()
{
    MobileDriver<?> mobileDriver = mock(MobileDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    mockMobileDriverContext(mobileDriver, WEBVIEW_CONTEXT, new HashSet<>());
    WebDriverManager spy = spyIsMobile(true);
    IllegalStateException exception = assertThrows(IllegalStateException.class,
        () -> spy.performActionInNativeContext(webDriver -> assertEquals(mobileDriver, webDriver)));
    assertEquals("MobileDriver doesn't have context: " + NATIVE_APP_CONTEXT, exception.getMessage());
}
 
源代码18 项目: vividus   文件: BrowserLogManagerTests.java
private static WebDriver mockBrowserName(String browserName)
{
    WebDriver webDriver = mock(WebDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    Capabilities capabilities = mock(Capabilities.class);
    when(((HasCapabilities) webDriver).getCapabilities()).thenReturn(capabilities);
    when(capabilities.getBrowserName()).thenReturn(browserName);
    return webDriver;
}
 
源代码19 项目: vividus   文件: DelegatingWebDriverTests.java
@Test
void testGetCapabilities()
{
    WebDriver driverWithCapabilities = Mockito.mock(WebDriver.class,
            withSettings().extraInterfaces(HasCapabilities.class));
    Capabilities capabilities = Mockito.mock(Capabilities.class);
    when(((HasCapabilities) driverWithCapabilities).getCapabilities()).thenReturn(capabilities);
    assertEquals(capabilities, new DelegatingWebDriver(driverWithCapabilities).getCapabilities());
}
 
源代码20 项目: vividus   文件: JsValidationStepsTests.java
private LogEntry mockGetLogEntry(String logErrorMessage)
{
    WebDriver webDriver = mock(WebDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
    when(webDriverProvider.get()).thenReturn(webDriver);
    when(webDriver.getCurrentUrl()).thenReturn(URL);
    Options options = mock(Options.class);
    when(webDriver.manage()).thenReturn(options);
    Logs logs = mock(Logs.class);
    when(options.logs()).thenReturn(logs);
    LogEntry severeEntry = new LogEntry(Level.SEVERE, 1L, logErrorMessage);
    LogEntry infoEntry = new LogEntry(Level.INFO, 1L, logErrorMessage);
    LogEntries logEntries = new LogEntries(Arrays.asList(severeEntry, infoEntry));
    when(logs.get(LogType.BROWSER)).thenReturn(logEntries);
    return severeEntry;
}
 
源代码21 项目: Selenium-Foundation   文件: ScreenshotUtils.java
/**
 * Determine if the specified driver is capable of taking screenshots.
 * 
 * @param optDriver optional web driver object
 * @param logger SLF4J logger object; may be 'null'
 * @return 'true' if driver can take screenshots; otherwise 'false'
 */
public static boolean canGetArtifact(final Optional<WebDriver> optDriver, final Logger logger) {
    if (optDriver.isPresent()) {
        WebDriver driver = optDriver.get();
        if (driver instanceof HasCapabilities) {
            if (((HasCapabilities) driver).getCapabilities().is(CapabilityType.TAKES_SCREENSHOT)) {
                return true;
            }
        }
        if (driver instanceof TakesScreenshot) {
            return true; // for remote drivers, this may be bogus
        }
        if (logger != null) {
            logger.warn("This driver is not able to take screenshots."); //NOSONAR
        }
    }
    return false;
}
 
源代码22 项目: Selenium-Foundation   文件: WebDriverUtils.java
/**
 * Get the capabilities of the specified search context
 * 
 * @param context search context
 * @return context capabilities
 */
public static Capabilities getCapabilities(final SearchContext context) {
    WebDriver driver = getDriver(context);
    
    if (driver instanceof HasCapabilities) {
        return ((HasCapabilities) driver).getCapabilities();
    } else {
        throw new UnsupportedOperationException("The specified context is unable to describe its capabilities");
    }
}
 
源代码23 项目: xframium-java   文件: DeviceWebDriver.java
@Override
public Capabilities getCapabilities()
{
    if ( webDriver instanceof HasCapabilities )
        return ((HasCapabilities) webDriver).getCapabilities();
    else
        return null;
}
 
源代码24 项目: selenium   文件: SeleniumCdpConnection.java
public static Optional<Connection> create(WebDriver driver) {
  if (!(driver instanceof HasCapabilities)) {
    throw new IllegalStateException("Given webdriver instance must have capabilities");
  }

  return create(((HasCapabilities) driver).getCapabilities());
}
 
源代码25 项目: selenium   文件: EventFiringWebDriver.java
@Override
public Capabilities getCapabilities() {
  if (driver instanceof HasCapabilities) {
    return ((HasCapabilities) driver).getCapabilities();
  }
  throw new UnsupportedOperationException(
      "Underlying driver does not implement getting capabilities yet.");
}
 
源代码26 项目: selenium   文件: WebDriverBackedSelenium.java
@Override
public Capabilities getCapabilities() {
  WebDriver driver = getWrappedDriver();
  if (driver instanceof HasCapabilities) {
    return ((HasCapabilities) driver).getCapabilities();
  }

  return null;
}
 
源代码27 项目: selenium   文件: WebDriverCommandProcessor.java
@VisibleForTesting
protected void assertDriverSupportsJavascript(WebDriver driver) {
  if (!(driver instanceof JavascriptExecutor)) {
    throw new IllegalStateException("Driver instance must support JS.");
  }

  if (!(driver instanceof HasCapabilities)) {
    // Might be proxy. Bail.
    return;
  }

  if (!((HasCapabilities) driver).getCapabilities().is(SUPPORTS_JAVASCRIPT)) {
    throw new IllegalStateException("JS support must be enabled.");
  }
}
 
源代码28 项目: selenium   文件: Html5CapabilitiesTest.java
private void configureCapability(String capability, boolean isEnabled) {
  Capabilities desiredCaps = new ImmutableCapabilities(capability, isEnabled);
  localDriver = new WebDriverBuilder().get(desiredCaps);
  Capabilities caps = ((HasCapabilities) localDriver).getCapabilities();
  assertThat(caps.getCapability(capability)).isNotNull();
  assertThat(caps.is(capability)).isEqualTo(isEnabled);
}
 
源代码29 项目: selenium   文件: EventFiringWebDriverTest.java
@Test
public void shouldReturnCapabilitiesWhenUnderlyingDriverImplementsInterfac() {
  WebDriver mockedDriver = mock(WebDriver.class, withSettings().extraInterfaces(HasCapabilities.class));
  EventFiringWebDriver testedDriver = new EventFiringWebDriver(mockedDriver);

  final Capabilities caps = new ImmutableCapabilities();
  when(((HasCapabilities) mockedDriver).getCapabilities()).thenReturn(caps);

  assertThat(testedDriver.getCapabilities()).isSameAs(caps);
}
 
源代码30 项目: selenium   文件: AugmenterTest.java
@Test
public void shouldBeAbleToAugmentMultipleTimes() {
  Capabilities caps = new ImmutableCapabilities("canRotate", true, "magic.numbers", true);

  StubExecutor stubExecutor = new StubExecutor(caps);
  stubExecutor.expect(DriverCommand.GET_SCREEN_ORIENTATION,
    Collections.emptyMap(),
    ScreenOrientation.PORTRAIT.name());
  RemoteWebDriver driver = new RemoteWebDriver(stubExecutor, caps);

  WebDriver augmented = getAugmenter()
    .addDriverAugmentation(
      "canRotate",
      Rotatable.class,
      (c, exe) -> new RemoteRotatable(exe))
    .augment(driver);

  assertThat(driver).isNotSameAs(augmented);
  assertThat(augmented).isInstanceOf(Rotatable.class);
  assertThat(augmented).isNotInstanceOf(HasMagicNumbers.class);

  WebDriver augmentedAgain = getAugmenter()
    .addDriverAugmentation(
      "magic.numbers",
      HasMagicNumbers.class,
      (c, exe) -> () -> 42)
    .augment(augmented);

  assertThat(augmented).isNotSameAs(augmentedAgain);
  assertThat(augmentedAgain).isInstanceOf(Rotatable.class);
  assertThat(augmentedAgain).isInstanceOf(HasMagicNumbers.class);

  ((Rotatable) augmentedAgain).getOrientation();  // Should not throw.

  assertThat(((HasCapabilities) augmentedAgain).getCapabilities())
    .isSameAs(driver.getCapabilities());
}
 
 类所在包
 同包方法