我可以使用Firefox.get_screenshot_as_file(‘2.png’)对整个页面进行屏幕截图,但是当我使用pass.screenshot(‘1.png’)对网络元素进行屏幕截图时,总是会引发以下异常:
selenium.common.exceptions.WebDriverException: Message: Unrecognized command: GET /session/284283fa-53fc-4b33-b329-e6e888dbdcb0/screenshot/{35834cf1-c9c7-4129-99b1-24f30c6b56e6}
之所以会出现此异常,是因为如果没有某些第三方库或您自己的代码来处理硒中的元素,就无法截取它的屏幕快照。
它使用称为PIL的库来执行此操作:
from selenium import webdriver
from PIL import Image
fox = webdriver.Firefox()
fox.get('https://http://codingdict.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
我可以用Firefox截屏整个页面。以文件('2.png')的形式获取屏幕截图,但当我使用段落截图一个web元素时。屏幕截图('1.png'),它总是引发这个异常:
当我运行上面的代码时,我得到了错误,我的python版本是2.7。硒含量为3.1 代码错误 [0315/220804.111:ERROR:angle_platform_impl.cc(33)]angle Display::initialize err或5:DXGI 1.2需要显示给另一个进程拥有的HWNDs。[0315/220804.111:错误:gl\u surface\u egl.cc(646
问题内容: 在Interface TakesScreenshot 页面上,我发现了这一点: 捕获屏幕截图并将其存储在指定位置。对于扩展了TakesScreenshot的WebDriver,这将根据浏览器尽最大努力按优先顺序返回以下内容:-整个页面- 当前窗口-当前帧的可见部分-包含浏览器的整个显示器的屏幕截图 对于扩展TakesScreenshot的WebElement,这将尽最大努力,具体取决于
问题内容: 有谁知道是否可以使用Selenium WebDriver截屏?(注:不是seleniumRC) 问题答案: 是的,有可能。以下示例是Java语言:
问题内容: 是否可以使用JavaScript截取网页的屏幕截图,然后将其提交回服务器? 我不太担心浏览器的安全性问题。等,因为实施将针对HTA。但是有可能吗? 问题答案: 我已经通过使用ActiveX控件为HTA完成了此操作。在VB6中构建控件以截取屏幕截图非常容易。我必须使用keybd_event API调用,因为SendKeys无法执行PrintScreen。这是该代码: 这只会使您到达将窗口
我试图在一个网页中给出的表格的屏幕截图。和我在代码中提供的相同元素xpath,但是Ashot代码正在捕获其他位置的屏幕截图。 我也尝试过其他截图代码, 但它给了我错误,我可以通过阅读这个链接来修复:https://github.com/pazone/ashot/issues/93,然后我使用下面的代码: 请帮助,因为此代码正在给我网页某些随机部分的屏幕截图。我也试图捕获其他元素,但我再次没有得到正