Skip to content

Commit 602ef23

Browse files
committed
[1.4.2-fix-page-size] - implemented validation for zoomed page
1 parent 1915224 commit 602ef23

File tree

3 files changed

+29
-13
lines changed

3 files changed

+29
-13
lines changed

src/main/java/util/driver/DriverHelper.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,11 @@ public static void scrollUpMobileElement(AppiumDriver driver, MobileElement elem
156156
public static void zoomInOutPage(WebDriver driver, int zoomPercent) {
157157
if (zoomPercent > 0) {
158158
JavascriptExecutor jse = (JavascriptExecutor) driver;
159-
jse.executeScript("document.body.style.zoom = '" + zoomPercent + "%'");
159+
if (isFirefox()) {
160+
jse.executeScript("document.body.style.MozTransform = 'scale(" + (zoomPercent / 100f) + ")';");
161+
} else {
162+
jse.executeScript("document.body.style.zoom = '" + zoomPercent + "%'");
163+
}
160164
}
161165
}
162166

src/main/java/util/validator/ResponsiveUIValidator.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
import java.util.concurrent.ConcurrentHashMap;
2323
import java.util.concurrent.atomic.AtomicLong;
2424

25-
import static environment.EnvironmentFactory.isChrome;
26-
import static environment.EnvironmentFactory.isMobile;
25+
import static environment.EnvironmentFactory.*;
2726
import static util.general.SystemHelper.isAutomotionFolderExists;
2827
import static util.general.SystemHelper.isRetinaDisplay;
2928
import static util.validator.Constants.*;
@@ -698,12 +697,16 @@ String getFormattedMessage(WebElement element) {
698697
}
699698

700699
int getRetinaValue(int value) {
701-
int zoom = Integer.valueOf(currentZoom.replace("%", ""));
702-
if (zoom != 100){
703-
value = (int) (value - (value * Math.abs(zoom - 100f) / 100f));
704-
}
705-
if (isRetinaDisplay() && isChrome()) {
706-
return 2 * value;
700+
if (!isMobile()) {
701+
int zoom = Integer.valueOf(currentZoom.replace("%", ""));
702+
if (zoom != 100) {
703+
value = (int) (value - (value * Math.abs(zoom - 100f) / 100f));
704+
}
705+
if (isRetinaDisplay() && isChrome()) {
706+
return 2 * value;
707+
} else {
708+
return value;
709+
}
707710
} else {
708711
return value;
709712
}
@@ -712,8 +715,12 @@ int getRetinaValue(int value) {
712715
long getPageWidth() {
713716
if (!isMobile()) {
714717
JavascriptExecutor executor = (JavascriptExecutor) driver;
715-
currentZoom = (String) executor.executeScript("return document.body.style.zoom;");
716-
if (currentZoom.equals("100%") || currentZoom.equals("")) {
718+
if (isFirefox()) {
719+
currentZoom = (String) executor.executeScript("document.body.style.MozTransform");
720+
} else {
721+
currentZoom = (String) executor.executeScript("return document.body.style.zoom;");
722+
}
723+
if (currentZoom == null || currentZoom.equals("100%") || currentZoom.equals("")) {
717724
currentZoom = "100%";
718725
return (long) executor.executeScript("if (self.innerWidth) {return self.innerWidth;} if (document.documentElement && document.documentElement.clientWidth) {return document.documentElement.clientWidth;}if (document.body) {return document.body.clientWidth;}");
719726
} else {
@@ -727,8 +734,12 @@ long getPageWidth() {
727734
long getPageHeight() {
728735
if (!isMobile()) {
729736
JavascriptExecutor executor = (JavascriptExecutor) driver;
730-
currentZoom = (String) executor.executeScript("return document.body.style.zoom;");
731-
if (currentZoom.equals("100%") || currentZoom.equals("")) {
737+
if (isFirefox()) {
738+
currentZoom = (String) executor.executeScript("document.body.style.MozTransform");
739+
} else {
740+
currentZoom = (String) executor.executeScript("return document.body.style.zoom;");
741+
}
742+
if (currentZoom == null || currentZoom.equals("100%") || currentZoom.equals("")) {
732743
currentZoom = "100%";
733744
return (long) executor.executeScript("if (self.innerHeight) {return self.innerHeight;} if (document.documentElement && document.documentElement.clientHeight) {return document.documentElement.clientHeight;}if (document.body) {return document.body.clientHeight;}");
734745
} else {

src/test/java/ResponsiveValidatorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public void testThatResponsiveValidatorWorks() {
2929
WebDriverFactory driverFactory = new WebDriverFactory();
3030
driver = driverFactory.getDriver();
3131
driver.get("http:/visual.itarray.net");
32+
driver.manage().window().maximize();
3233

3334
TestPage page = new TestPage(driver);
3435

0 commit comments

Comments
 (0)