当我尝试在python中使用硒捕获网页的屏幕截图时,出现错误消息selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 10.000
。
代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
indi_url = 'http://www.google.com'
options = Options()
options.add_argument("disable-infobars")
options.add_argument("--start-maximized")
options.add_argument("--disable-popup-blocking")
options.add_argument("disable-popup-blocking")
options.add_argument("--disable")
driver = webdriver.Chrome(options=options)
driver.get(indi_url)
driver.implicitly_wait(30)
driver.save_screenshot("new.png")
错误消息:
我正在使用Chrome版本73,chromedriver版本73。
注意:在较低版本的chrome和chrome驱动程序中,代码工作正常(即屏幕截图)。
帮我解决新版chrome驱动程序的问题。
预先感谢
答案 0 :(得分:0)
错误显示,您的屏幕快照文件名与模板扩展名.png不匹配
以下是制作屏幕截图的示例。
Java:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(".\\Screenshots\\example_screenshot.png"));
Python:
driver.save_screenshot("screenshot.png")
答案 1 :(得分:-1)
此错误消息...
UserWarning: name used for saved screenshot does not match file type. It should end with a .png extension
"type. It should end with a .png extension", UserWarning)
...表示 Selenium-Python 客户端在调用get_screenshot_as_file()
方法时遇到问题。
get_screenshot_as_file()将当前窗口的屏幕快照保存到PNG
图像文件中。如果存在任何 IOError ,则返回False
,否则返回True
。在文件名中使用完整路径。
用法:
.png
定义:
driver.get_screenshot_as_file('/Screenshots/foo.png')
根据错误堆栈跟踪的快照:
您已将命令用作:
if not filename.lower().endswith('.png'):
warnings.warn("name used for saved screenshot does not match file "
"type. It should end with a `.png` extension", UserWarning)
png = self.get_screenshot_as_png()
try:
with open(filename, 'wb') as f:
f.write(png)
except IOError:
return False
finally:
del png
return True
问题是:
driver.get_screenshot_as_file('new.jpeg')
结尾即使您希望使用.png
,该方法也会依次调用save_screenshot()
在项目中以get_screenshot_as_file(filename)
的形式创建目录,并提供所需的屏幕快照文件名的绝对路径,同时调用以下两种方法之一:
Screenshots
driver.get_screenshot_as_file("./Screenshots/YakeshrajM.png")
当前GAed Chrome v73 存在一些问题,您可能希望降级为 Chrome v72 。您可以在以下位置找到一些相关的讨论: