我正在尝试使用以下代码获取 Gmail 登录页面上“下一步”按钮的屏幕截图。
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.gmail.com");
WebElement signupButton= driver.findElement(By.xpath("//div[@id='identifierNext']"));
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage image = ImageIO.read(screenshot);
int width = signupButton.getSize().getWidth();
int height = signupButton.getSize().getHeight();
Rectangle rect = new Rectangle(width, height);
Point p = signupButton.getLocation();
BufferedImage dest = image.getSubimage(p.getX(), p.getY(), width, height);
ImageIO.write(dest, "png", screenshot);
FileUtils.copyFile(screenshot, new File("C:\\Users\\user\\Desktop\\Screenshots\\loginButton.png"));
截取的屏幕截图是空的。图像中没有元素。
最佳答案
您不再需要这样做了。在最新版本的 Selenium 中,您现在可以立即截取元素的屏幕截图,因为 WebElement 接口(interface) API 已经具有该功能。看看下面的例子:
element.getScreenshotAs(OutputType.BYTES)
关于java - 无法获取元素的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59007541/