Skip to content

Commit f3e776f

Browse files
committed
[java] Fixing format of element screenshot command
1 parent 0ebad53 commit f3e776f

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

java/client/src/org/openqa/selenium/remote/http/AbstractHttpCommandCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public AbstractHttpCommandCodec() {
153153

154154
defineCommand(UPLOAD_FILE, post("/session/:sessionId/file"));
155155
defineCommand(SCREENSHOT, get("/session/:sessionId/screenshot"));
156-
defineCommand(ELEMENT_SCREENSHOT, get("/session/:sessionId/screenshot/:id"));
156+
defineCommand(ELEMENT_SCREENSHOT, get("/session/:sessionId/element/:id/screenshot"));
157157
defineCommand(GET_TITLE, get("/session/:sessionId/title"));
158158

159159
defineCommand(FIND_ELEMENT, post("/session/:sessionId/element"));

java/client/test/org/openqa/selenium/TakesScreenshotTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.openqa.selenium;
1919

20+
import static org.junit.Assert.assertEquals;
2021
import static org.junit.Assert.assertFalse;
2122
import static org.junit.Assert.assertTrue;
2223
import static org.junit.Assert.fail;
@@ -141,6 +142,29 @@ && getEffectivePlatform(driver).is(LINUX)
141142
compareColors(expectedColors, actualColors);
142143
}
143144

145+
@Test
146+
@Ignore(value = CHROME)
147+
@Ignore(value = FIREFOX)
148+
@Ignore(value = IE)
149+
@Ignore(value = SAFARI)
150+
public void testShouldCaptureScreenshotOfAnElement() throws Exception {
151+
driver.get(appServer.whereIs("screen/screen.html"));
152+
WebElement element = driver.findElement(By.id("cell11"));
153+
154+
byte[] imageData = element.getScreenshotAs(OutputType.BYTES);
155+
assertTrue(imageData != null);
156+
assertTrue(imageData.length > 0);
157+
BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageData));
158+
assertTrue(image != null);
159+
160+
Raster raster = image.getRaster();
161+
String hex = String.format("#%02x%02x%02x",
162+
(raster.getSample(1, 1, 0)),
163+
(raster.getSample(1, 1, 1)),
164+
(raster.getSample(1, 1, 2)));
165+
assertEquals("#0f12f7", hex);
166+
}
167+
144168
@Test
145169
@Ignore(value = SAFARI, reason = "takes only visible viewport")
146170
@Ignore(value = CHROME, reason = "takes only visible viewport")

0 commit comments

Comments
 (0)