Giter VIP home page Giter VIP logo

Comments (12)

pazone avatar pazone commented on May 20, 2024

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.

seliniumtester avatar seliniumtester commented on May 20, 2024

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.

Screenshot:
1-login1

from ashot.

pazone avatar pazone commented on May 20, 2024

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.

seliniumtester avatar seliniumtester commented on May 20, 2024

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.

pazone avatar pazone commented on May 20, 2024

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.

seliniumtester avatar seliniumtester commented on May 20, 2024

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:

code

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);

Screenshot:
ahot-tablet1

from ashot.

pazone avatar pazone commented on May 20, 2024

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.

rovner avatar rovner commented on May 20, 2024

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.

seliniumtester avatar seliniumtester commented on May 20, 2024

@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.

ahot-landscape

from ashot.

seliniumtester avatar seliniumtester commented on May 20, 2024

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.

pazone avatar pazone commented on May 20, 2024

@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.

MayankOkeyUser avatar MayankOkeyUser commented on May 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.