我有一个在pyvirtualdisplay中运行的脚本,我需要一个复制到剪贴板的变量值。
以下有效(我的脚本的简化版):
from selenium import webdriver
import clipboard
driver = webdriver.Chrome("/home/name/chromedriver")
driver.get("http://pagewithvariable.com")
variable = find_element_by_name("variable")
clipboard.copy(variable)
以下无效:
from selenium import webdriver
import clipboard
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Chrome("/home/name/chromedriver")
driver.get("http://pagewithvariable.com")
variable = find_element_by_name("variable")
clipboard.copy(variable)
我在pyvirtualdisplay中尝试运行剪贴板时遇到的错误如下:
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":1195"
after 11 requests (8 known processed) with 0 events remaining.
请帮助:)
答案 0 :(得分:1)
好的,事实证明pyvirtualdisplay的剪贴板是完全独立的,没有迹象表明在虚拟显示器中使用你的操作系统的可能性。
由于剪贴板在大多数情况下会在脚本退出时使用,因此在关闭显示时它会起作用。我曾经以下面的方式做到这一点,这不起作用:
display.popen.terminate()
当使用以下内容关闭显示时,在该点之后声明的剪贴板正在正常工作:
display.stop()
我的问题是谷歌就此主题提出的唯一问题,因此我认为其他人可能会发现它很有用。