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

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

源代码1 项目: hifive-pitalium   文件: CompareEntirePageTest.java
/**
 * 十分な高さにしてスクロールが出ない状態でbodyのassertViewを実行するテスト.<br>
 * 前提条件:なし<br>
 * 実行環境:IE7~11/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * 期待結果:実行したタイムスタンプのフォルダ内にspecifyTargetBodyWithoutScroll_topPage_WINDOWS_(browser name).pngが生成される<br>
 *        仕様通りのresult.jsonと座標用のjsonファイルが生成される<br>
 *        RUN_TESTモードの場合、assertViewの比較で一致し、compareResultがtrueとなる
 */
@Test
public void specifyTargetBodyWithoutScroll() {
	String platformName = capabilities.getPlatformName();
	if (!"iOS".equals(platformName) && !"android".equalsIgnoreCase(platformName)) {
		driver.manage().window().setSize(new Dimension(1280, 2500));
	}

	driver.get(URL_TOP_PAGE);

	PtlWebDriverWait wait = new PtlWebDriverWait(driver, 30);
	wait.untilLoad();

	CompareTarget[] targets = { new CompareTarget(ScreenArea.of(SelectorType.TAG_NAME, "body")) };
	assertionView.assertView("topPage", targets, HIDDEN_ELEMENTS);
}
 
源代码2 项目: xframium-java   文件: PressGesture.java
@Override
protected boolean _executeGesture( WebDriver webDriver )
{
	AppiumDriver appiumDriver = null;
	
	if ( webDriver instanceof AppiumDriver )
		appiumDriver = (AppiumDriver) webDriver;
	else if ( webDriver instanceof NativeDriverProvider )
	{
		NativeDriverProvider nativeProvider = (NativeDriverProvider) webDriver;
		if ( nativeProvider.getNativeDriver() instanceof AppiumDriver )
			appiumDriver = (AppiumDriver) nativeProvider.getNativeDriver();
		else
			throw new IllegalArgumentException( "Unsupported Driver Type " + webDriver );
	}
	Dimension screenDimension = appiumDriver.manage().window().getSize();
	
	Point pressPosition = getActualPoint( getPressPosition(), screenDimension );
	
	TouchAction swipeAction = new TouchAction( appiumDriver );
	swipeAction.press( PointOption.point( pressPosition.getX(), pressPosition.getY() ) ).waitAction( WaitOptions.waitOptions( Duration.ofMillis( getPressLength() ) ) ).release().perform();
	
	return true;
}
 
源代码3 项目: xframium-java   文件: SwipeGesture.java
@Override
protected boolean _executeGesture( WebDriver webDriver )
{
	AppiumDriver appiumDriver = null;
	
	if ( webDriver instanceof AppiumDriver )
		appiumDriver = (AppiumDriver) webDriver;
	else if ( webDriver instanceof NativeDriverProvider )
	{
		NativeDriverProvider nativeProvider = (NativeDriverProvider) webDriver;
		if ( nativeProvider.getNativeDriver() instanceof AppiumDriver )
			appiumDriver = (AppiumDriver) nativeProvider.getNativeDriver();
		else
			throw new IllegalArgumentException( "Unsupported Driver Type " + webDriver );
	}
	Dimension screenDimension = appiumDriver.manage().window().getSize();
	
	Point actualStart = getActualPoint( getSwipeStart(), screenDimension );
	Point actualEnd = getActualPoint( getSwipeEnd(), screenDimension );
	
	TouchAction swipeAction = new TouchAction( appiumDriver );
	swipeAction.press( PointOption.point(actualStart.getX(), actualStart.getY() ) ).moveTo( PointOption.point(actualEnd.getX(), actualEnd.getY() ) ).release().perform();
	
	return true;
}
 
源代码4 项目: coteafs-selenium   文件: AbstractDriver.java
private void setScreen(final PlaybackSetting playback) {
    final ScreenState state = playback.getScreenState();
    if (getPlatform() == DESKTOP) {
        LOG.i("Setting screen size of Browser to {}...", state);
        switch (state) {
            case FULL_SCREEN:
                manageWindow(Window::fullscreen);
                break;
            case MAXIMIZED:
                manageWindow(Window::maximize);
                break;
            case NORMAL:
            default:
                final ScreenResolution resolution = playback.getScreenResolution();
                LOG.i("Setting screen resolution to [{}]...", resolution);
                manageWindow(w -> w.setSize(new Dimension(resolution.getWidth(), resolution.getHeight())));
                manageWindow(w -> w.setPosition(new Point(0, 0)));
                break;
        }
    }
}
 
源代码5 项目: nomulus   文件: RegistrarConsoleScreenshotTest.java
@Test
public void settingsSecurityWithCerts() throws Throwable {
  server.runInAppEngineEnvironment(
      () -> {
        persistResource(
            loadRegistrar("TheRegistrar")
                .asBuilder()
                .setClientCertificate(CertificateSamples.SAMPLE_CERT, START_OF_TIME)
                .setFailoverClientCertificate(CertificateSamples.SAMPLE_CERT2, START_OF_TIME)
                .build());
        return null;
      });
  driver.manage().window().setSize(new Dimension(1050, 2000));
  driver.get(server.getUrl("/registrar#security-settings"));
  driver.waitForElement(By.tagName("h1"));
  driver.diffPage("view");
  driver.waitForElement(By.id("reg-app-btn-edit")).click();
  driver.waitForElement(By.tagName("h1"));
  driver.diffPage("edit");
}
 
源代码6 项目: nomulus   文件: RegistrarConsoleScreenshotTest.java
@Test
public void settingsContactEdit_setRegistryLockPassword() throws Throwable {
  server.runInAppEngineEnvironment(
      () -> {
        persistResource(
            makeRegistrarContact2()
                .asBuilder()
                .setRegistryLockEmailAddress("[email protected]")
                .setAllowedToSetRegistryLockPassword(true)
                .build());
        persistResource(makeRegistrar2().asBuilder().setRegistryLockAllowed(true).build());
        return null;
      });
  driver.manage().window().setSize(new Dimension(1050, 2000));
  driver.get(server.getUrl("/registrar#contact-settings/[email protected]"));
  Thread.sleep(1000);
  driver.waitForElement(By.tagName("h1"));
  driver.waitForElement(By.id("reg-app-btn-edit")).click();
  driver.diffPage("page");
}
 
@Override
public boolean popuplateDevice( DeviceWebDriver webDriver, String deviceId, Device device, String xFID )
{
    String uAgent = (String) webDriver.executeScript("return navigator.userAgent;");
    UserAgent userAgent = new UserAgent( uAgent );
    device.setBrowserName( userAgent.getBrowser().getName() );
    device.setManufacturer( userAgent.getOperatingSystem().getManufacturer().getName() );
    String[] osSplit = userAgent.getOperatingSystem().getName().split( " " );
    device.setOs( osSplit[ 0 ].toUpperCase() );
    if ( osSplit.length > 1 )
        device.setOsVersion( userAgent.getOperatingSystem().getName().split( " " )[ 1 ].toUpperCase() );
    
    Dimension winDim = webDriver.manage().window().getSize();
    if ( winDim != null )
        device.setResolution( winDim.getWidth() + " x " + winDim.height );
    else
        device.setResolution( null );
    
    return true;
}
 
源代码8 项目: NoraUi   文件: DriverFactory.java
/**
 * Generates a selenium webdriver following a name given in parameter.
 * By default a chrome driver is generated.
 *
 * @param driverName
 *            The name of the web driver to generate
 * @return
 *         An instance a web driver whose type is provided by driver name given in parameter
 * @throws TechnicalException
 *             if an error occured when Webdriver setExecutable to true.
 */
private WebDriver generateWebDriver(String driverName) throws TechnicalException {
    WebDriver driver;
    if (IE.equals(driverName)) {
        driver = generateIEDriver();
    } else if (CHROME.equals(driverName)) {
        driver = generateGoogleChromeDriver();
    } else if (FIREFOX.equals(driverName)) {
        driver = generateFirefoxDriver();
    } else {
        driver = generateGoogleChromeDriver();
    }
    // As a workaround: NoraUi specify window size manually, e.g. window_size: 1920 x 1080 (instead of .window().maximize()).
    driver.manage().window().setSize(new Dimension(1920, 1080));
    driver.manage().timeouts().implicitlyWait(IMPLICIT_WAIT, TimeUnit.MILLISECONDS);
    drivers.put(driverName, driver);
    return driver;

}
 
源代码9 项目: WebAndAppUITesting   文件: IphoneBaseOpt.java
/**
 * 判断要点击的元素是否被其它元素覆盖
 * 
 * @param clickBy
 * @param coverBy
 * @return
 */
public boolean isCover(By clickBy, By coverBy) {

	MobileElement clickElement = getDriver().findElement(clickBy);
	MobileElement coverElement = getDriver().findElement(coverBy);

	// 获取控件开始位置高度
	Point clickstart = clickElement.getLocation();
	int clickStartY = clickstart.y;

	Point coverstart = coverElement.getLocation();
	int coverStartY = coverstart.y;

	// 获取控件高度
	Dimension firstq = clickElement.getSize();
	int height = firstq.getHeight();

	// 控件中间高度是否大于底部高度
	if (clickStartY + height / 2 >= coverStartY) {
		return true;
	}
	return false;
}
 
源代码10 项目: WebAndAppUITesting   文件: AndroidBaseOpt.java
/**
 * 判断要点击的元素是否被其它元素覆盖
 * 
 * @param clickBy
 * @param coverBy
 * @return
 */
public boolean isCover(By clickBy, By coverBy) {

	MobileElement clickElement = getDriver().findElement(clickBy);
	MobileElement coverElement = getDriver().findElement(coverBy);

	// 获取控件开始位置高度
	Point clickstart = clickElement.getLocation();
	int clickStartY = clickstart.y;

	Point coverstart = coverElement.getLocation();
	int coverStartY = coverstart.y;

	// 获取控件高度
	Dimension firstq = clickElement.getSize();
	int height = firstq.getHeight();

	// 控件中间高度是否大于底部高度
	if (clickStartY + height / 2 >= coverStartY) {

		return true;
	}
	return false;
}
 
源代码11 项目: Quantum   文件: PerfectoDeviceSteps.java
/**
 * Performs the lo touch gesture according to the point coordinates.
 *
 * @param locator
 *            write in format of x,y. can be in pixels or
 *            percentage(recommended) for example 50%,50%.
 */
@Then("^I tap on \"(.*?)\" for \"(\\d*\\.?\\d*)\" seconds$")
public static void tapElement(String locator, int seconds) {

	QAFExtendedWebElement myElement = new QAFExtendedWebElement(locator);

	Point location = myElement.getLocation();
	Dimension size = myElement.getSize();

	// determine location to click and convert to an appropriate string
	int xToClick = location.getX() + (size.getWidth() / 2);
	int yToClick = location.getY() + (size.getHeight() / 2);
	String clickLocation = xToClick + "," + yToClick;

	DeviceUtils.longTouch(clickLocation, seconds);

}
 
源代码12 项目: coteafs-appium   文件: SwipeUtils.java
/**
 * @param direction
 * @param startPosition
 * @param distancePercent
 * @param setting
 * @param screenSize
 * @param elementSize
 * @param elementLocation
 * @param actions
 * @return action
 * @author wasiq.bhamla
 * @since Sep 18, 2018 8:03:55 PM
 */
public static <T extends TouchAction<T>> T swipeTo(final SwipeDirection direction,
    final SwipeStartPosition startPosition, final int distancePercent, final PlaybackSetting setting,
    final Dimension screenSize, final Dimension elementSize, final Point elementLocation, final T actions) {
    final double distance = distancePercent / 100.0;
    final Point source = getStartPoint(startPosition, screenSize, elementSize, elementLocation);
    int endX = source.getX() + (int) (source.getX() * direction.getX() * distance);
    int endY = source.getY() + (int) (source.getY() * direction.getY() * distance);
    if (elementSize != null) {
        endX = source.getX() + (int) (elementSize.getWidth() * direction.getX() * distance);
        endY = source.getY() + (int) (elementSize.getHeight() * direction.getY() * distance);
    }
    return actions.press(PointOption.point(source.getX(), source.getY()))
        .waitAction(WaitOptions.waitOptions(Duration.ofMillis(setting.getDelayBeforeSwipe())))
        .moveTo(PointOption.point(endX, endY))
        .release();
}
 
@Before
public void setUp() throws Exception {
	ChromeOptions options = new ChromeOptions();
	// This is hardcoded but we cannot do otherwise. The alternative would
	// be to run a docker grid
	driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), options);
	driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
	// Many suggests to define the size, but if you tests requires a
	// different setting, change this
	driver.manage().window().setSize(new Dimension(1024, 768));
	//
	((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector());
	// This is important: docker-compose randomly assign ports and names to
	// those logical entities so we get them from the rule
	String codeDefendersHome = "http://frontend:8080/codedefenders";
	//
	//
	driver.get(codeDefendersHome);
}
 
源代码14 项目: opentest   文件: ReadElementAspect.java
@Override
public void run() {
    super.run();
    
    By locator = this.readLocatorArgument("locator");

    WebElement element = this.getElement(locator);
    Point point = element.getLocation();

    int x = point.getX();
    int y = point.getY();

    Dimension size = element.getSize();
    int width = size.width;
    int height = size.height;

    this.writeOutput("x", x);
    this.writeOutput("y", y);
    this.writeOutput("width", width);
    this.writeOutput("height", height);
}
 
@Action(object = ObjectType.BROWSER, desc = "Changes the browser size into [<Data>]", input = InputType.YES)
public void setBrowserSize() {
    try {
        if (Data.matches("\\d*(x|,| )\\d*")) {
            String size = Data.replaceFirst("(x|,| )", " ");
            String[] sizes = size.split(" ", 2);
            Driver.manage().window().setSize(new Dimension(Integer.parseInt(sizes[0]), Integer.parseInt(sizes[1])));
            Report.updateTestLog(Action, " Browser is resized to " + Data,
                    Status.DONE);
        } else {
            Report.updateTestLog(Action, " Invalid Browser size [" + Data + "]",
                    Status.DEBUG);
        }
    } catch (Exception ex) {
        Report.updateTestLog(Action, "Unable to resize the Window ",
                Status.FAIL);
        Logger.getLogger(Basic.class.getName()).log(Level.SEVERE, null, ex);
    }
}
 
源代码16 项目: opentest   文件: ReadElementAspect.java
@Override
public void run() {
    super.run();
    
    By locator = readLocatorArgument("locator");
    
    this.swipeAndCheckElementVisible(locator, this.getSwipeOptions());

    MobileElement element = this.getElement(locator);
    Point point = element.getLocation();

    int x = point.getX();
    int y = point.getY();

    Dimension size = element.getSize();
    int width = size.width;
    int height = size.height;
    
    Logger.trace(String.format("The element aspect is (%s,%s,%s,%s)",
            x, y, width, height));

    this.writeOutput("x", x);
    this.writeOutput("y", y);
    this.writeOutput("width", width);
    this.writeOutput("height", height);
}
 
源代码17 项目: apicurio-registry   文件: SeleniumProvider.java
public void setupDriver(WebDriver driver) {
    this.driver = driver;
    this.driver.manage().window().setPosition(new Point(0, 0));
    this.driver.manage().window().setSize(new Dimension(1366, 768));
    driverWait = new WebDriverWait(driver, 10);
    browserScreenshots.clear();
}
 
源代码18 项目: selenium-shutterbug   文件: Browser.java
public Coordinates getBoundingClientRect(WebElement element) {
    FileUtil.getJsScript(RELATIVE_COORDS_JS);
    ArrayList<String> list = (ArrayList<String>) executeJsScript(RELATIVE_COORDS_JS, element);
    Point start = new Point(Integer.parseInt(list.get(0)), Integer.parseInt(list.get(1)));
    Dimension size = new Dimension(Integer.parseInt(list.get(2)), Integer.parseInt(list.get(3)));
    return new Coordinates(start, size, devicePixelRatio);
}
 
源代码19 项目: nomulus   文件: RegistrarConsoleScreenshotTest.java
@Test
public void settingsContactAdd() throws Throwable {
  driver.manage().window().setSize(new Dimension(1050, 2000));
  driver.get(server.getUrl("/registrar#contact-settings"));
  Thread.sleep(1000);
  driver.waitForElement(By.tagName("h1"));
  driver.waitForElement(By.id("reg-app-btn-add")).click();
  driver.diffPage("page");
}
 
源代码20 项目: vividus   文件: JavascriptActions.java
@Override
public Dimension getViewportSize()
{
    Map<String, Long> result = executeScript(
            "return {width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),"
                    + "height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)}");
    return new Dimension(result.get("width").intValue(), result.get("height").intValue());
}
 
源代码21 项目: nomulus   文件: RegistrarConsoleScreenshotTest.java
@Test
public void settingsContactEdit_setRegistryLockPassword_notAllowedForContact() throws Throwable {
  server.runInAppEngineEnvironment(
      () -> persistResource(makeRegistrar2().asBuilder().setRegistryLockAllowed(true).build()));
  driver.manage().window().setSize(new Dimension(1050, 2000));
  driver.get(server.getUrl("/registrar#contact-settings/[email protected]"));
  Thread.sleep(1000);
  driver.waitForElement(By.tagName("h1"));
  driver.waitForElement(By.id("reg-app-btn-edit")).click();
  driver.diffPage("page");
}
 
源代码22 项目: vividus   文件: WindowsActions.java
private int getWindowSize(String windowHandle)
{
    WebDriver driver = getWebDriver();
    driver.switchTo().window(windowHandle);
    Dimension dimension = driver.manage().window().getSize();
    return dimension.getHeight() * dimension.getWidth();
}
 
源代码23 项目: bobcat   文件: DroppableWebElement.java
/**
 * @return Point in the middle of the drop area.
 */
@Override
public Point getCurrentLocation() {
  Point inViewPort = null;
  switcher.switchTo(getFramePath());
  try {
    Dimension size = dropArea.getSize();
    inViewPort = ((Locatable) dropArea).getCoordinates().inViewPort()
        .moveBy(size.getWidth() / 2, size.getHeight() / 2);
  } finally {
    switcher.switchBack();
  }
  return inViewPort;
}
 
源代码24 项目: vividus   文件: WebDriverManagerTests.java
@Test
void testGetNativeApplicationViewportCached()
{
    mockWebDriverHavingCapabilities(Map.of(CapabilityType.PLATFORM_NAME, MobilePlatform.IOS));
    when(webDriverProvider.getUnwrapped(Rotatable.class)).thenReturn(mobileDriver);
    lenient().when(webDriverManagerContext.getParameter(WebDriverManagerParameter.ORIENTATION)).thenReturn(null);
    when(mobileDriver.getOrientation()).thenReturn(ScreenOrientation.PORTRAIT);
    Dimension dimension = new Dimension(375, 667);
    lenient().when(webDriverManagerContext.getParameter(WebDriverManagerParameter.SCREEN_SIZE))
            .thenReturn(dimension);
    Dimension actualDimension = webDriverManager.getSize();
    assertEquals(dimension.getHeight(), actualDimension.getHeight());
    assertEquals(dimension.getWidth(), actualDimension.getWidth());
    verify(this.mobileDriver, never()).manage();
}
 
源代码25 项目: vividus   文件: DelegatingWebElementTests.java
@Test
void testGetSize()
{
    Dimension dimension = Mockito.mock(Dimension.class);
    when(webElement.getSize()).thenReturn(dimension);
    assertEquals(dimension, delegatingWebElement.getSize());
}
 
源代码26 项目: vividus   文件: ScreenshotFileNameGeneratorTests.java
@Test
void testGenerateScreenshotFileNameWithoutBrowserName()
{
    Dimension dimension = new Dimension(WIDTH, HEIGHT);
    when(webDriverManager.getSize()).thenReturn(dimension);
    String screenshotFileName = screenshotFileNameGenerator.generateScreenshotFileName(SCREENSHOT_NAME);
    assertTrue(screenshotFileName.matches(FILE_DATE_PATTERN + SCREENSHOT_NAME + WIDTH_X_HEIGHT_EXTENSION));
}
 
private static WebDriver checkAndSetSize(WebDriver driver, String size) {
    if (driver != null) {
        if (size.matches("[0-9]+ x [0-9]+")) {
            int w = Integer.valueOf(size.split("x")[0].trim());
            int h = Integer.valueOf(size.split("x")[1].trim());
            driver.manage().window().setSize(new Dimension(w, h));
        }
    }
    return driver;
}
 
源代码28 项目: nomulus   文件: RegistrarConsoleScreenshotTest.java
@Test
public void settingsWhoisEditError() throws Throwable {
  driver.manage().window().setSize(new Dimension(1050, 2000));
  driver.get(server.getUrl("/registrar#whois-settings"));
  driver.waitForElement(By.id("reg-app-btn-edit")).click();
  driver.setFormFieldsById(ImmutableMap.of("faxNumber", "cat"));
  driver.waitForElement(By.id("reg-app-btn-save")).click();
  Thread.sleep(1000);
  driver.diffPage("page");
}
 
源代码29 项目: vividus   文件: JavascriptActionsTests.java
@Test
void testGetViewportSize()
{
    Map<String, Long> map = new HashMap<>();
    Long width = 375L;
    Long height = 600L;
    map.put("width", width);
    map.put("height", height);
    String viewportSize = "return {width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),"
            + "height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)}";
    when(((JavascriptExecutor) webDriver).executeScript(viewportSize)).thenReturn(map);
    Dimension size = javascriptActions.getViewportSize();
    assertEquals(new Dimension(width.intValue(), height.intValue()), size);
}
 
@Override
public Rectangle findImage( DeviceWebDriver webDriver, String imageName, Map<String, String> propertyMap )
{
    
    ImageExecution imageExec = PerfectoMobile.instance( webDriver.getxFID() ).imaging().imageExists( webDriver.getExecutionId(), webDriver.getDeviceName(), imageName, propertyMap );
    
    if ( imageExec != null && Boolean.parseBoolean( imageExec.getStatus() ) )
        return new Rectangle( new Point( Integer.parseInt( imageExec.getLeft() ), Integer.parseInt( imageExec.getTop() ) ), new Dimension( Integer.parseInt( imageExec.getWidth() ), Integer.parseInt( imageExec.getHeight() ) ) );
    
    return null;
}
 
 类所在包
 同包方法