Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 含硒元素的屏幕截图_Java_Selenium_Screenshot_Selenium Chromedriver - Fatal编程技术网

Java 含硒元素的屏幕截图

Java 含硒元素的屏幕截图,java,selenium,screenshot,selenium-chromedriver,Java,Selenium,Screenshot,Selenium Chromedriver,注意:我知道这个问题以前被问过好几次,但是我有一个其他人似乎没有的问题 尽管我似乎正确地获得了元素的点及其宽度和高度,但最终的裁剪是不正确的。这就像我正在拍摄的截图对网页有不同的维度。我正在使用Chrome驱动程序 这是我尝试获取谷歌徽标图像截图的代码: WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com"); WebElement ele = driver.findElement(By.id("hpl

注意:我知道这个问题以前被问过好几次,但是我有一个其他人似乎没有的问题

尽管我似乎正确地获得了元素的点及其宽度和高度,但最终的裁剪是不正确的。这就像我正在拍摄的截图对网页有不同的维度。我正在使用Chrome驱动程序

这是我尝试获取谷歌徽标图像截图的代码:

WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
WebElement ele = driver.findElement(By.id("hplogo"));
//Get entire page screenshot
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = null;
try {
    fullImg = ImageIO.read(screenshot);
} catch (IOException e) {

}
//Get the location of element on the page
Point point = ele.getLocation();
//Get width and height of the element
int eleWidth = ele.getSize().getWidth();
int eleHeight = ele.getSize().getHeight();
//Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot = fullImg.getSubimage(point.getX(), point.getY(), eleWidth,
                eleHeight);
try {
    ImageIO.write(eleScreenshot, "png", screenshot);
} catch (IOException e) {

}
//Copy the element screenshot to disk
File screenshotLocation = new File("/Users/M/Desktop/stuff/logo.png");
try{
    FileUtils.copyFile(screenshot, screenshotLocation);
}catch(IOException e){

}
以下是我的最终徽标图像:

以下是它应该得到的(就像png而不是gif):


有人知道可能发生了什么吗?

检查您的操作系统是否有自定义缩放功能。在windows上使用125%的缩放比例时,我也遇到了同样的问题。

有关详细信息,请参阅下面的屏幕截图

转到您的系统设置>搜索显示>将“使所有内容变大”下拉列表的值更改为100%。然后再次运行代码,这对您来说很好


您确定您的图像有误吗。因为对我来说,代码工作得很完美是的,我在问题中发布了图片。我也试过几种不同的元素。这真让我困惑。你用的是Chrome驱动程序吗?您使用的是什么版本的Selenium@MadhanIt的宽度和高度似乎都很合适,但它就像是放大了屏幕截图一样?这就像屏幕截图的点、宽度和高度与网页不一样。使用Windows7、Java1.7.101、Selenium 2.53、ChromeDriver 2.21、Chrome51