当前位置: 首页 > 知识库问答 >
问题:

在Selenium Python中拍摄webelement的屏幕截图并保存文件

公良鸿风
2023-03-14

我试着根据类名拍摄一个特定网页元素的截图。我遵循了《如何使用Selenium WebDriver截屏》、《如何使用Python在Selenium中截屏指定的WebElement》以及《如何使用Python中的Selenium WebDriver截屏》中描述的方法?

以下是命令及其错误:

驱动程序。通过类名称(“视图字段体”)查找元素。屏幕截图(“test.png”)驱动程序。通过类名称(“视图字段体”)查找元素。截图_as_png

这两次我都收到了错误消息

硒。常见的例外。WebDriverException:消息:未知命令:session/75c3765173a9cf726d35afa7978d9b6e/element/0.5926184656216698-3/screenshot

当我尝试Image=driver.find_element_by_class_name("views-field-body")。屏幕截图这个命令执行,但是图像对象作为绑定方法出现,如下面引用的文本所示

selenium.webdriver.remote.webelement.WebElement的绑定方法WebElement.screenshot(会话="75c3765173a9cf726d35afa7978d9b6e",元素="0.5926184656216698-3")

如何保存此绑定方法到磁盘上的映像?为什么命令没有执行?使用Python 3.8,如果这很重要的话。

共有1个答案

严修诚
2023-03-14

我想你用火狐而不是铬我找到了一个解决办法

from selenium import webdriver
from PIL import Image

fox = webdriver.Firefox()
fox.get('https://stackoverflow.com/')

# now that we have the preliminary stuff out of the way time to get that image :D
element = fox.find_element_by_id('hlogo') # find part of the page you want image of
location = element.location
size = element.size
fox.save_screenshot('screenshot.png') # saves screenshot of entire page
fox.quit()

im = Image.open('screenshot.png') # uses PIL library to open image in memory

left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']


im = im.crop((left, top, right, bottom)) # defines crop points
im.save('screenshot.png') # saves new cropped image

https://stackoverflow.com/a/37565356/8951071

 类似资料:
  • 我需要使用Sikuli的自动化,但我无法采取截图。问题是,当我点击“截屏”或“创建区域”时,IDE会被隐藏,但选择区域选项不会出现....

  • 我目前正在尝试实现Ashot来为我当前的项目截图,它正在为桌面工作。 但我想知道如何在iOS和Android设备上实现它,互联网上没有太多信息。 我使用了以下视口,它正在为iPad截图: 屏幕截图FullPage=new AShot()。拍摄策略(ShootingStrategies.viewportRetina(100,0,0,2))。截图(司机); 但是我想知道如何使用给定的属性来为其他IOS

  • 问题内容: 我想获得活动的“全页”屏幕截图。该视图包含一个RecyclerView,其中包含许多项。 我可以使用此功能拍摄当前视图的屏幕截图: 但是它仅包含我可以正常查看的项目(符合预期)。 截屏时,有什么方法可以使RecyclerView神奇地完整显示(一次显示所有项目)? 如果没有,我应该如何解决这个问题? 问题答案: 这是我的解决方案,当 所有项目的尺寸都相同 并且 只有一种类型的项目时 。

  • 问题内容: 我正在构建一个称为“ HTML测验”的东西。它完全在JavaScript上运行,非常酷。 最后,弹出一个结果框,显示“您的结果:”,它显示了他们花费了多少时间,他们得到了多少百分比以及他们从10个问题中得出了多少个问题。我想有一个按钮,上面写着“捕获结果”,并使其以某种方式截取屏幕截图或div,然后仅在页面上显示捕获的图像即可在其中单击鼠标右键并“将图像另存为”。 我真的很想这样做,以

  • 问题内容: 我想通过python脚本截取屏幕截图,并毫不干扰地保存它。 我只对Linux解决方案感兴趣,应该支持任何基于X的环境。 问题答案: 这无需使用scrot或ImageMagick即可工作。 从http://ubuntuforums.org/showpost.php?p=2681009&postcount=5借来的

  • 问题内容: 我要实现的是从python中的任何网站获取网站截图。 环境:Linux 问题答案: 在Mac上,有webkit2png,在Linux+KDE上,可以使用khtml2png。我已经尝试了前者,并且效果很好,并且听说后者已投入使用。 我最近遇到了QtWebKit,它声称是跨平台的(我猜Qt将WebKit卷入了他们的库中)。但是我从未尝试过,所以我无法告诉您更多信息。 QtWebKit链接显