#java
#java
Вопрос:
Я использую этот код для вычисления отступа кнопки на странице от границы браузера.
Dimension dm = new Dimension(1024,768);
//Setting the current window to that dimension
driver.manage().window().setSize(dm);
// Click Login button to submit login form
WebDriverWait loginButtonWebDriverWait = new WebDriverWait(driver, 4000);
WebElement loginButtonWebElement = loginButtonWebDriverWait.until(ExpectedConditions.presenceOfElementLocated(By.id("login")));
int loginButtonX = loginButtonWebElement.getLocation().getX();
int loginButtonY = loginButtonWebElement.getLocation().getY();
int loginButtonWidth = loginButtonWebElement.getRect().getWidth();
int loginButtonHeight = loginButtonWebElement.getRect().getHeight();
System.out.println("Login Button is " loginButtonX " pixels from left border.");
System.out.println("Login Button is " (screenWidth - loginButtonX loginButtonWidth) " pixels from right border.");
System.out.println("Login Button is " loginButtonY " pixels from top border.");
System.out.println("Login Button is " (screenHeight - loginButtonY loginButtonHeight) " pixels from bottom border.");
// We need to check that the size is not less than 10 pixels. If the space is less trow exception and fail the test.
assertThat(loginButtonX).isGreaterThan(5);
assertThat(loginButtonY).isGreaterThan(5);
Мне нужно реализовать некоторую проверку, подобную этой:
(window_width - loginButtonWidth) < loginButtonX < window_width
и
0 < `loginButtonY` < loginButtonHeight.
Знаете ли вы, как я могу правильно реализовать проверку следующим образом:
if((screenWidth - loginButtonWidth) < loginButtonX < screenWidth){
}
Теперь я получаю сообщение об ошибке: Operator '<' cannot be applied to 'boolean', 'int'
. Как я могу решить эту проблему?
Ответ №1:
(screenWidth - loginButtonWidth) < loginButtonX
возвращает true
or false
в зависимости от того, является ли условие истинным. Таким образом, в вашем случае оператор (window_width - loginButtonWidth) < loginButtonX < window_width
будет равен:
if(true/false < number)
Что выдает ошибку: Operator '<' cannot be applied to 'boolean', 'int'
, поскольку вы не можете проверить, является ли логическое значение больше или меньше числа.
Вы должны выполнить следующее:
int subtracted = screenWidth - loginButtonWidth;
if(subtracted < loginButtonX amp;amp; subtracted < screenWidth){
}