在通过Css选择器定位元素时,无法创建着色器缓存条目错误

时间:2017-09-24 19:08:01

标签: python css selenium selenium-webdriver selenium-chromedriver

我正在使用Selenium在Python中编写一个简单的脚本,以通过其Css选择器检测元素。我正在访问Google页面,并通过其CSS选择器定位输入,输入[name = q]

Chrome页面按计划打开,但问题是它在没有实际查找输入的情况下关闭,并在终端中抛出以下错误:ERROR:shader_disk_cache.cc(237)]无法创建着色器缓存条目:-2

我尝试在Google Chrome关闭时运行该脚本,甚至还关闭了任务管理器中的所有Chrome进程,并且仍然抱怨着色器缓存条目。

我该怎么办?

我的代码是:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path=r'C:\Python27\chromedriver.exe')
driver.get("http://www.google.com")
fLocator = "input[name=q]"
try:
    searchField = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, fLocator)))
finally:
    driver.quit() 

Error that I'm getting in the PyCharm's terminal

3 个答案:

答案 0 :(得分:2)

您的代码接近完美。您需要进行如下小改动:

从以下位置编辑CSS_SELECTOR

fLocator = "input[name=q]"

要:

fLocator = "input[name='q']"

更新

查看错误,重新填充错误以及对these linksdiscussions {{3}}的一些研究我认为shader_disk_cache.ccshader_disk_cache.h以某种方式损坏了。我认为谷歌Chrome的干净卸载(使用Revo Uninstaller)和完整的磁盘清理(使用CCleaner)&最后安装最新的谷歌浏览器可能会让我们超越错误。

答案 1 :(得分:1)

我运行了脚本(你的代码)并没有出现错误。

问题可能是Chrome驱动程序,请确保32/64位版本不会导致此问题。另外,请看以下链接,它可能会有所帮助: "Unable to move the cache" error in selenium webdriver

答案 2 :(得分:1)

正确的定位器

使用xpath://*[@id='gs_htif0']

fLocator = "input[name='q']"