Comments (12)
Hello. It looks like your phone emulator has dpr = 1
, but tablet has dpr > 1
. You should set it in shooting strategy.
Try to use
new AShot().shootindStrategy(ShootingStrategies.viewportRetina(100, 0, 0, <yourDpr>));
from ashot.
Hi, Thanks for the suggestion. I have tried the same with the below code,
final Screenshot screenshot = new AShot()
.shootingStrategy(ShootingStrategies.viewportRetina(100, 0, 0, 2))
.takeScreenshot(driver);
Now, i am getting more black area. Please advice.
from ashot.
As I understood, you are using build in Chrome tools to emulate tablet. Are you using Chrome's presets for it or custom capabilities? Which kind of tablet you want to emulate? Can you show me how are you doing it?
from ashot.
Hi, yes i am using the build in Chrome emulator. I am using the below custom capability provided in the chromedriver.exe. I am trying to emulate Apple iPad device.
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Apple iPad");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);
from ashot.
Consider this code string deviceMetrics.put("pixelRatio", 3.0);
here . You are using preset with unknown pixel ratio.
Add this to your caps: deviceMetrics.put("pixelRatio", 1.0);
- it will make your emulation screenshotable :) Also avoid to launch webdriver on displays with DPR != 1
. For example mac book with retina. You can do it but you should calculate your result DPR. It can be hard sometimes.
from ashot.
Hi, I have added the capability as per your suggestion. Still, i am getting this issue. Please advice.
Please find the code below.
Browser Setup:
AShot:
final Screenshot screenshot = new AShot()
.shootingStrategy(ShootingStrategies.viewportPasting(100))
.takeScreenshot(driver);
or
final Screenshot screenshot = new AShot()
.shootingStrategy(ShootingStrategies.viewportRetina(1000, 0, 0, 1))
.takeScreenshot(driver);
from ashot.
Are you getting this when trying to take screenshot of other page? If you are launching chrome locally I need to know you local dpr, it also can be != 1.
from ashot.
It's really looks like a bug for me in viewport_height.js for chrome emulation in portrait mode.
See
//portrait
window.innerHeight
1360 // should be 1024
document.documentElement.clientHeight
1024
//landscape
document.documentElement.clientHeight
768
window.innerHeight
768
@seliniumtester you could workaround your code by using landscape orientation for now
Map<String, Object> deviceMetrics = new HashMap<>();
deviceMetrics.put("width", 1024);
deviceMetrics.put("height", 768);
deviceMetrics.put("pixelRatio", 1.0);
from ashot.
@pazone yes i am getting this issue in other pages as well. I am having dpr as 1.
@rovner thanks for the suggestion. But, for landscape view also i am getting the same issue,Please refer the below screenshot.
from ashot.
Also i am getting the below warning message in the console when Ashot takes screenshot. Please advice.
May 30, 2016 10:49:06 PM org.openqa.selenium.remote.Augmenter extractRemoteWebDriver
WARNING: Augmenter should be applied to the instances of @augmentable classes or previously augmented instances only
from ashot.
@seliniumtester Could you please take look at ShootingStrategies
factory. You can solve your problem by using ShootingStrategies.viewportRetina(...)
shooting strategy. You should figure our the DPR of your device to adjust it. Sorry for long response.
from ashot.
WebDriver driver = new ChromeDriver();
Object output = ((JavascriptExecutor) driver).executeScript("return window.devicePixelRatio");
String value = String.valueOf(output);
float windowDPR = Float.parseFloat(value);
use DPR here :
Screenshot screenshotfull= new AShot().shootingStrategy(ShootingStrategies.viewportRetina(1000, 0, 0, windowDPR)).takeScreenshot(driver);
you will get rid of Black Space from ScreenShot
from ashot.
Related Issues (20)
- Null pointer Exception in ASHOT 1.5.4
- markign differrence with rectangle HOT 6
- Black window appearing in screenshot
- ignore element in current viewport
- Not sure how to use ignore element feature
- How to ignore fixed element when we using shootingStrategy to capturing the entire page. HOT 2
- ignoreElements not working
- Screen shot of an element is white. HOT 1
- withDiffSizeTrigger(int diffSizeTrigger) is nto working HOT 2
- IE11: Full page screenshot not working.java.lang.ArithmeticException HOT 2
- Am too facing this issue, but i can't make above javascript executor logic. As my utility will capture and compare diffrent webpage every time.
- any .net version?
- Is there any support to android espresso/uiautomator, I tried but BufferedImage & ImageIO not supported in android
- Caused by: java.lang.OutOfMemoryError HOT 1
- Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded HOT 1
- Only able to take a screenshot when using just webdriver. HOT 3
- Is there any support to Karate Webdriver to take FullPage Screenshot? HOT 1
- The full-page screenshot feature is not functioning correctly when capturing screenshot of a websites with a fixed header.... HOT 3
- Need better DiffMarkupPolicy algorithm HOT 1
- Not able to capture screenshot getting error java.lang.RuntimeException: org.openqa.selenium.JavascriptException: javascript error: $ is not defined HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ashot.