Je reçois cette erreur lorsque j'essaie d'exécuter du code sur 2 ordinateurs sur 3:
[0502/155335.565:ERROR:gpu_process_transport_factory.cc(1007)] Lost UI shared context.
Voici le code:
from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options
import os
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--window-size=1920x1080")
chrome_driver = os.getcwd() + "\\chromedriver.exe"
print "chrome driver:" + chrome_driver
driver = webdriver.Chrome(chrome_options=chrome_options,
executable_path=chrome_driver)
driver.get("http://www.google.com")
luck_button = driver.find_element_by_css_selector("[name=btnI")
luck_button.click()
driver.get_screenshot_as_file("capture.png")
Maintenant, j'ai vérifié tous les systèmes, ils exécutent Windows 10 64 bits, Google Chrome 64 bits Version: 66.0.3359.139, python 2.7 32 bits, chromedriver.exe 32 bits, pycharm 2018.1.1
ce qui est drôle, c’est que si je lance ceci sans les options sans tête, alors tout fonctionne. Le navigateur apparaît, le bouton I'm feeling lucky
est enfoncé et une capture d'écran est prise. Cette erreur ne survient que si j'ajoute le bit sans tête.
Je ne suis pas sûr de ce qui pourrait être différent sur un système qui permettrait à cela de fonctionner lorsque les autres systèmes exécutent le même logiciel.
Lorsque Headless Chrome a été publié pour la première fois sous le nom GA (Disponibilité générale) de Google Team l'article Getting Started with Headless Chrome
mentionnait que:
--disable-gpu \ # Temporarily needed if running on Windows.
Une note a été ajoutée en tant que:
À l'heure actuelle, vous voudrez également inclure l'indicateur
--disable-gpu
si vous utilisez Windows.
Selon la discussion Headless: make --disable-gpu flag unnecessary
, il était clair que:
L'indicateur
--disable-gpu
n'est plus nécessaire sur Linux ou Mac OSX. Cela deviendra également inutile sous Windows dès que le bogueSwiftShader fails an assert on Windows in headless mode
sera corrigé.
Selon la discussion headless: Switch from osmesa to SwiftShader
comme Google/l'équipe Chromium a décidé d'expédier SwiftShader avec Chrome, l'équipe a pensé commencer à l'utiliser pour restituer GL content en mode sans tête. Cela a nécessité quelques modifications, comme suit:
L'idée de Support WebGL in headless
est toujours en discussion mais SwiftShader fails an assert on Windows in headless mode
avec une erreur telle que:
[0117/125830.649194:ERROR:gpu_process_transport_factory.cc(1043)] Lost UI shared context.
DevTools listening on ws://127.0.0.1:37429/devtools/browser/1f0b2bf7-dfdd-44ac-9da7-f2659d352f0d
Cette erreur n'a pas d'incidence sur votre @Test
et vous pouvez l'ignorer pour le moment.
J'ai eu le même problème. Essayez d’ajouter ces indicateurs aux options du pilote Chrome:
options.add_arguments("--proxy-server='direct://'");
options.add_arguments("--proxy-bypass-list=*");