我今天从社区得到了一些很大的帮助,希望有人能让我在这个小问题上找到正确的方向。
我有一个循环,我试图加载一些不同的网页,但目前相同的网页打开在不同的窗口。
如何在单独的显示器中打开它们?有没有办法给显示器贴上标签?
for d in data["screen"]:
screen_list["code"]))
display = Display(visible=1, size=(800, 600))
display.start()
driver = webdriver.Chrome()
driver.get("https://" + d["server"] + "/test/")编辑过的
为了改进答案,我编写了一个快速脚本,尝试加载两个显示在不同网页上的不同的显示,但它在同一个窗口中加载两个网页
import sys
import os
from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver.common.keys import Keys
display = Display(visible=1, size=(800, 600))
display.start()
driver = webdriver.Chrome()
driver.get("https://news.bbc.co.uk")
display2 = Display(visible=1, size=(800, 600))
display2.start()
driver2 = webdriver.Chrome()
driver2.get("https://www.google.com")编辑过的
我认为问题是,脚本在端口上打开了一个xephyr会话,然后铬驱动程序将只与该会话对话,所以您能为每个driver.get("")请求打开多个xephyr会话吗?
发布于 2015-05-12 16:50:52
好的,我在这里重复了这个问题。当我发现这个问题时,我几乎要拍自己的耳光,因为一旦所有的片段都在一起,它就很明显了。问题是,在第一个服务器没有连接到“真正的”X服务器之后启动的显示。它们彼此相连。下面是发生的事情:
start()方法。这个start方法启动一个新的Xephyr实例,并帮助更改DISPLAY环境,以便连接到X的后续进程连接到新的Xephyr实例。ps来确定)。您必须做的是在创建新的Display之前,将DISPLAY重置为开始创建显示器之前的状态。下面是工作的代码:
import sys
import os
from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver.common.keys import Keys
orig = os.environ["DISPLAY"]
display = Display(visible=1, size=(800, 600))
display.start()
driver = webdriver.Chrome()
driver.get("https://news.bbc.co.uk")
# You have to do this between each new Display.
os.environ["DISPLAY"] = orig
display2 = Display(visible=1, size=(800, 600))
display2.start()
driver2 = webdriver.Chrome()
driver2.get("https://www.google.com")https://stackoverflow.com/questions/30168169
复制相似问题