0

我有一个在 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.

请帮忙 :)

4

1 回答 1

1

好的,事实证明 pyvirtualdisplay 的剪贴板是完全独立的,并且没有迹象表明可以在虚拟显示器中使用您的操作系统的剪贴板。

由于剪贴板在大多数情况下将在脚本退出时使用,因此它在显示关闭时工作。我曾经通过以下方式执行此操作,但不起作用:

display.popen.terminate()

当显示关闭时,在该点之后声明的剪贴板工作正常:

display.stop()

我的问题是谷歌上关于这个话题的唯一问题,所以我决定其他人可能会觉得它有用。

于 2015-08-22T17:46:53.580 回答