J'ai une exigence où je cours un manuscrit de sélenium qui ouvre 2 instances de Firefox sur une machine. Je veux prendre des captures d'écran des deux instances au même temps. La même partie de temps est importante.Prendre des captures d'écran en même temps Xvfb plusieurs affichages
I utilisé comme suit pour simuler ceci:
- Start 2 différents affichages à l'aide
Xvfb -ac :99 and Xvfb -ac :100
- J'ai 2 scripts python qui définit la variable d'environnement DISPLAY à 99 et 100 respectivement.
Voici les scripts python: screenshot99.py
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
import os
os.environ['DISPLAY'] = ':99'
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.test.com')
browser.quit()
display.stop()
et screenshot100.py
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
import os
os.environ['DISPLAY'] = ':100'
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.test.com')
browser.quit()
display.stop()
J'ai 2 questions:
- Est-il même possible de prendre des captures d'écran de 2 différentes instances de navigateur au même temps?
- Si oui, comment puis-je simuler cela? J'ai juste besoin d'une preuve de concept pour prouver le fait ci-dessus.
Vous pouvez FOURCHE deux processus ou fils cela prendra les captures d'écran lors de la réception d'un signal, et ma ke le processus parent envoie les signaux. Voir par exemple [ici] (http://stackoverflow.com/questions/27463626/make-a-thread-wait-for-either-a-timer-or-a-signal). – reinierpost