如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?我尝试了已经可用的答案
Posted
技术标签:
【中文标题】如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?我尝试了已经可用的答案【英文标题】:How to capture the screenshot of a specific element rather than entire page using Selenium Webdriver?I tried the already available answers 【发布时间】:2021-05-07 07:54:13 【问题描述】:如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?我使用的是 selenium 4.0。如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?
【问题讨论】:
您使用哪种语言? java , 蟒蛇 ? 我在使用 java 我应该使用 Ashot 【参考方案1】:检查 webelement 类以了解可用方法:
在java中:
https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html
WebDriver driver = new ChromeDriver();
driver.get("https://***.com/questions/66021499/how-to-capture-the-screenshot-of-a-specific-element-rather-than-entire-page-usin?noredirect=1#comment116730378_66021499");
WebElement element = driver.findElement(By.cssSelector("#submit-button"));
javascriptExecutor js = (JavascriptExecutor) driver;
File a = new File("a.png");
js.executeScript("arguments[0].scrollIntoView()",element);
File b = element.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(b, a);
在python中:
https://www.selenium.dev/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webelement.html
element.screenshot(filename)
【讨论】:
@PDHide 能否分享一个示例网站的完整代码,但要截取特定的 web 元素。我想我必须滚动并截取屏幕截图 它可以工作。但是截图保存在哪里 @shivacurrent 目录为 a.png ,您也可以提供完整路径,如 c:/a.png 在那里创建文件 我找到了,但是我不能截取完整的截图我只能截取一半。我必须向下滚动才能截取完整的截图 @shiva 用滚动工具更新了代码你现在可以试试吗以上是关于如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?我尝试了已经可用的答案的主要内容,如果未能解决你的问题,请参考以下文章
Selenium & webdriver.io 如何使用 executeScript?
如何使用selenium webdriver来判断一个网页加载完毕
如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?
如何在 ruby 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项