J'ai un ordinateur portable Windows 10 exécutant une machine virtuelle Windows 7. À l'intérieur de la machine virtuelle, lorsque je lance WebDriver, l'erreur gpu_process_transport_factory.cc <1009> du contexte partagé de l'interface utilisateur perdue lors de son démarrage:
IWebDriver driver = new ChromeDriver() //This causes the 1009 Error
Cela varie également pour Impossible d'interroger l'enregistrement stéréo et Impossible d'envoyer GpuChannelMsg_CreateCommandBuffer et command_buffer_proxy_impll.cc <115> Le descripteur de mémoire partagée n'est pas valide.
Cela a été depuis des mois et aucune modification n'a été apportée (ce WebDriver est l'unique fonction de la machine virtuelle), l'ordinateur portable qui l'exécute fonctionne correctement (aucun problème de GPU) . WebDriver continue de naviguer dans les pages, mais génère des erreurs supplémentaires et 10 fois plus lentement.
EDIT: Mis à jour pour ChromeDriver à 2.35 et toujours le même comportement.
Headless Chrome a été expédié dans Chrome 59 par Google Team qui a présenté un moyen d'exécuter le navigateur Chrome dans un environnement sans tête. _.
Une note a été ajoutée en tant que:
Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
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é.
Conformément à la discussion headless: Switch from osmesa to SwiftShader
lorsque Google/l'équipe Chromium a décidé d'expédier SwiftShader avec Chrome, l'équipe a pensé commencer à l'utiliser pour restituer GL content in 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.
Cela semble être un problème avec la dernière version de Chrome (65.0.3325.146). En revenant à une version antérieure de Chrome (64.0.3282.186), le problème a disparu pour moi.
Fera des recherches supplémentaires et mettra à jour ici si je trouve des informations supplémentaires, mais comme solution temporaire, vous pouvez désinstaller Chrome et installer la version 64.0.3282.186.
'Lost UI Shared Context' a été pris pour une erreur alors qu'il s'agit en réalité d'une sortie de journalisation.
Ce problème a été corrigé depuis Chrome 72.0. pas d'argument supplémentaire nécessaire.