我正在使用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()
答案 0 :(得分:2)
您的代码接近完美。您需要进行如下小改动:
从以下位置编辑CSS_SELECTOR
:
fLocator = "input[name=q]"
要:
fLocator = "input[name='q']"
查看错误,重新填充错误以及对these links和discussions {{3}}的一些研究我认为shader_disk_cache.cc
或shader_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']"