Skip to content

Commit 6b39468

Browse files
committed
[master] - added fix for getting the retina scale factor
1 parent a293dd0 commit 6b39468

File tree

3 files changed

+38
-20
lines changed

3 files changed

+38
-20
lines changed

src/main/java/net/itarray/automotion/internal/DriverFacade.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import io.appium.java_client.android.AndroidDriver;
55
import io.appium.java_client.ios.IOSDriver;
66
import org.openqa.selenium.*;
7+
import org.openqa.selenium.chrome.ChromeDriver;
8+
import org.openqa.selenium.firefox.FirefoxDriver;
9+
import org.openqa.selenium.phantomjs.PhantomJSDriver;
710
import org.openqa.selenium.remote.RemoteWebDriver;
811

912
import java.io.File;
@@ -39,6 +42,18 @@ public WebDriver getDriver() {
3942
return driver;
4043
}
4144

45+
public boolean isChromeDriver() {
46+
return (driver instanceof ChromeDriver) || ((RemoteWebDriver) driver).getCapabilities().getBrowserName().toLowerCase().equals("chrome");
47+
}
48+
49+
public boolean isFirefoxDriver() {
50+
return (driver instanceof FirefoxDriver) || ((RemoteWebDriver) driver).getCapabilities().getBrowserName().toLowerCase().equals("firefox");
51+
}
52+
53+
public boolean isPhantomJSDriver() {
54+
return (driver instanceof PhantomJSDriver);
55+
}
56+
4257
public boolean isAppiumAndroidContext() {
4358
return driver instanceof AndroidDriver;
4459
}
@@ -92,7 +107,7 @@ private String getZoomScript() {
92107
private long retrievePageHeight() {
93108
if (!isAppiumContext()) {
94109
if (getZoom().equals("100%")) {
95-
return (long) executeScript("if (window.innerHeight) {return window.innerHeight;} if (document.documentElement && document.documentElement.clientHeight) {return document.documentElement.clientHeight;}if (document.body) {return document.body.clientHeight;}");
110+
return (long) executeScript("if (self.innerHeight) {return self.innerHeight;} if (document.documentElement && document.documentElement.clientHeight) {return document.documentElement.clientHeight;}if (document.body) {return document.body.clientHeight;}");
96111
} else {
97112
return (long) executeScript("return document.getElementsByTagName('body')[0].offsetHeight");
98113
}
@@ -108,7 +123,7 @@ private long retrievePageHeight() {
108123
private long retrievePageWidth() {
109124
if (!isAppiumContext()) {
110125
if (getZoom().equals("100%")) {
111-
String script = "if (window.innerWidth) {return window.innerWidth;} if (document.documentElement && document.documentElement.clientWidth) {return document.documentElement.clientWidth;}if (document.body) {return document.body.clientWidth;}";
126+
String script = "if (self.innerWidth) {return self.innerWidth;} if (document.documentElement && document.documentElement.clientWidth) {return document.documentElement.clientWidth;}if (document.body) {return document.body.clientWidth;}";
112127
return (long) executeScript(script);
113128
} else {
114129
return (long) executeScript("return document.getElementsByTagName('body')[0].offsetWidth");
@@ -117,7 +132,7 @@ private long retrievePageWidth() {
117132
if (isAppiumNativeMobileContext() || isAppiumIOSContext()) {
118133
return driver.manage().window().getSize().getWidth();
119134
} else {
120-
return (long) executeScript("if (self.innerWidth) {return self.outerWidth;} if (document.documentElement && document.documentElement.clientWidth) {return document.documentElement.clientWidth;}if (document.body) {return document.body.clientWidth;}");
135+
return (long) executeScript("if (self.innerWidth) {return self.innerWidth;} if (document.documentElement && document.documentElement.clientWidth) {return document.documentElement.clientWidth;}if (document.body) {return document.body.clientWidth;}");
121136
}
122137
}
123138
}

src/main/java/net/itarray/automotion/internal/HtmlReportBuilder.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,23 +114,25 @@ private Html buildHtml() throws IOException, ParseException {
114114
new NoTag(this, String.format("Time execution: %s", jsonObject.get(TIME_EXECUTION)));
115115
}};
116116

117-
new H5(this,
118-
new Style("color: #4d4d4d")) {{
119-
new NoTag(this, "Hover over the image to see the results");
120-
}};
117+
//TODO uncomment after implementing the hovering events
118+
// new H5(this,
119+
// new Style("color: #4d4d4d")) {{
120+
// new NoTag(this, "Hover over the image to see the results");
121+
// }};
121122
new P(this) {{
122123
screenshotDrawingOverlay = jsonObject.get(DRAWINGS);
123124
new Div(this,
124-
new OnMouseOver("document.getElementById('" + screenshotDrawingOverlay.toString()+ "').style.display = 'block'"),
125-
new OnMouseOut("document.getElementById('" + screenshotDrawingOverlay.toString()+ "').style.display = 'none'"),
125+
//new OnMouseOver("document.getElementById('" + screenshotDrawingOverlay.toString()+ "').style.display = 'block'"),
126+
//new OnMouseOut("document.getElementById('" + screenshotDrawingOverlay.toString()+ "').style.display = 'none'"),
126127
new Style("position:relative; left: 0; top:0; width: 96%; margin-left:2%")) {{
127128
new Img(this,
128129
new Style("position:relative; left: 0; top:0"),
129130
new Src(String.format("img/%s", jsonObject.get(SCREENSHOT))),
130131
new Alt("screenshot"));
131132
new Img(this,
132133
new Id(screenshotDrawingOverlay.toString()),
133-
new Style("position:absolute; left: 0; top:0; display:none;"),
134+
new Style("position:absolute; left: 0; top:0;"),
135+
//new Style("position:absolute; left: 0; top:0; display:none;"),
134136
new Src(String.format("img/%s", screenshotDrawingOverlay)),
135137
new Alt("screenshot-overlay"));
136138
}};

src/main/java/net/itarray/automotion/internal/ResponsiveUIValidatorBase.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,17 @@ private SimpleTransform getTransform() {
109109
}
110110

111111
private double getScaleFactor() {
112-
// double factor;
113-
// if (getDriver().isAppiumContext()) {
114-
// factor = getReport().getRetinaScaleFactor();
115-
// } else {
116-
// factor = zoomFactor;
117-
// if (isChrome()) {
118-
// factor = factor * 2;
119-
// }
120-
// }
121-
return getReport().getRetinaScaleFactor();
112+
double factor;
113+
if (getDriver().isAppiumContext()) {
114+
factor = getReport().getRetinaScaleFactor();
115+
} else {
116+
factor = zoomFactor;
117+
if (getDriver().isChromeDriver()) {
118+
factor = factor * getReport().getRetinaScaleFactor();
119+
}
120+
}
121+
122+
return factor;
122123
}
123124

124125
private int getYOffset() {

0 commit comments

Comments
 (0)