Не удалось создать запись кэша шейдера: ошибка -2 с ChromeDriver Chrome и Selenium - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в Python и изучаю селен.Я хочу создать простой код, который может автоматически искать что-нибудь с google.com по входным данным. Я получаю доступ к элементу по имени и получаю сообщение об ошибке:

Не удалось создать запись в кэше шейдера: -2.

Кто-нибудь может помочь мне с моим кодом и исправить то, что я здесь делаю неправильно?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from time import sleep


driver = webdriver.Chrome()
driver.get('http://www.google.com')

elem = driver.find_element_by_name('q')
time.sleep(5)
elem.clear()
elem.send_keys("Python")
elem.send_keys(Keys.RETURN)

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

, вероятно, js продолжает двигаться, и ваш объект не записывается вовремя, я исправил это, добавив спящий режим.

это грязная штука, потому что я только собираю данные с веб-сайта, но правильное решение -сделайте асинхронный метод и дайте ему полностью исполниться, прежде чем js перейдет

0 голосов
/ 27 декабря 2018

Это сообщение об ошибке ...

Failed to create shader cache entry: -2

... является записью журнала , созданной из функции int ShaderDiskCacheEntry::WriteCallback(int rv), определенной в shader_disk_cache.cc

Основная проблема заключалась в том, что код кэша шейдера удаляет все, кроме одного каталога кортежа временных меток .

Согласно Не удалось создать папку для кэша шейдера на диске Основная проблема заключалась в том, что код кэша шейдера удаляет все, кроме одного каталога кортежа временных меток.


Решение

В качестве решения были предприняты следующие шаги:

  • Переместите все записи кэша в один каталог кэша и вместо этого используйте метку времени (вв будущем может быть build-id hash) и gpu id как часть входных данных кеша при вводе ша.
  • Удаляет старые записи, когда кеш приближается к своему максимальному размеру.Хотя это решение немного усложняет сбор / распространение предварительно скомпилированных шейдеров, но не неразрешимо.
  • util/disk_cache: временные метки хэша в ключах кэша

Вместо использованиякаталог, хэшируйте метки времени в самих ключах кеша.Поскольку больше нет каталога временных меток, больше нет необходимости удалять кэш других версий мезы, и мы полагаемся на удаление, чтобы очистить старые записи кэша.Это решает проблему одновременного использования нескольких вариантов disk_cache, где один удаляет каталог, принадлежащий другому.

Соответствующее обсуждение можно найти в Не удалось создать ошибку входа в кэш шейдера во времяпоиск элемента по его селектору Css

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...