python - 拍摄 selenium 屏幕截图并在 tkinter gui 上显示
问题描述
我正在尝试截取 selenium 页面的屏幕截图并将其显示在我的 tkinter gui 上的画布上,但由于某种原因,我得到了错误:
TypeError: __str__ returned non-string (type bytes)
这是代码,提前感谢您的帮助
from tkinter import *
import tkinter as tk
import time
from selenium import webdriver
root = tk.Tk()
root.geometry('700x700')
def picture():
browser = webdriver.Chrome('C:\\Users\\Downloads\\chromedriver_win324\\chromedriver.exe')
browser.get('https://google.co.uk')
fil = browser.get_screenshot_as_png()
img = PhotoImage(fil)
canvas = Canvas(root, width=300,height=300)
canvas.place(x=12.5,y=450)
canvas.create_image(20,20, image=img)
Button(root, text='Start', command=lambda: picture()).pack()
root.mainloop()
解决方案
问题是您试图将数据用作 的第一个位置参数PhotoImage
,但第一个位置参数用于名称而不是图像本身。
您需要提供数据作为data
属性的值:
img = PhotoImage(data=fil)
推荐阅读
- android - Android(MP 图表)
- tensorflow - InvalidArgumentError 使用 tensorflow-gpu==2.0.0a0 构建具有两个模型生成器和鉴别器的 tf.keras.models.Model 时出错
- java - 如何在 Java 中正确删除数组
- css - 左上角的“后退”按钮功能与 chrome 浏览器错误上的“<-”图标,以某种方式影响我的网站
- git - Azure Pipelines:我快要死了:无法读取“https://github.com”的用户名:终端提示已禁用
- c - I2C接收,PIC中的错误数据接收
- javascript - 如何在 JavaScript 代码中获取 JavaScript 对象?
- sql - 案例表达太复杂
- python - 颠倒行序和操作效率
- javascript - 如何制作与另一个按钮相同的按钮?