O Firefox iniciado pelo Selenium ignora a exibição criada por pyvirtualdisplay
Inicio uma exibição compyvirtualdisplay
antes de criar meuWebDriver
instância. Se eu usar o Chrome, ele funcionará sem problemas: o Chrome aparece na instância do Xephyr quepyvirtualdisplay
cria. No entanto, quando eu uso o Firefox, a instância do Xephyr aparece, mas o Firefox aparece fora dela.
Aqui está o código que reproduz totalmente o problema:
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import FirefoxBinary
import pyvirtualdisplay
binary = FirefoxBinary()
with pyvirtualdisplay.Display(visible=True):
if True: # Set to False to use Chrome...
driver = webdriver.Firefox(None, binary)
else:
driver = webdriver.Chrome()
driver.get("http://www.google.com")
driver.quit()
O código acima é uma versão mínima do código que é mais complexa (o que explica o aparentemente inútilFirefoxBinary()
)