[英]Selenium WebDriverException: Message: unknown error: cannot determine loading status from unknown error: missing or invalid 'entry.level'
我有一个使用 selenium 进行测试的脚本。 现在甚至打开一个谷歌页面使用
driver.get(url) # url = Google homepage url
给我以下错误
driver.get("https://my.gumtree.com/login")
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 245, in get
self.execute(Command.GET, {'url': url})
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 233, in execute
self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status
from unknown error: missing or invalid 'entry.level'
(Session info: chrome=65.0.3315.3)
(Driver info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 10.0.16299 x86_64)
我有 Google chrome 65 版、Chromedriver 2.35 和 selenium 2.53.1
我按照其他类似问题中提到的解决方案尝试了不同的版本组合(在下表中提到),但没有任何效果。
Selenium Chrome Chromedriver
2.53.0 63 2.33
2.53.1 65(latest) 2.34
3.6.0 2.35(latest)
3.7.0
3.8.0
3.8.1(latest)
编辑 1:JDK 版本
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
错误说明了一切:
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status
from unknown error: missing or invalid 'entry.level'
您的主要问题是您使用的二进制文件之间的版本兼容性如下:
chromedriver=2.29.461591
(根据日志,尽管您在问题中提到了Chromedriver 2.35
)chromedriver=2.29.461591
发行说明清楚地提到了以下内容:
Supports Chrome v56-58
chrome=65.0.3315.3
chromedriver=2.35
发行说明清楚地提到了以下内容:
Supports Chrome v62-64
Selenium Version 2.53.1
。JDK version
。JDK
升级到最新级别JDK Version 8 Update 151
。ChromeDriver
到ChromeDriver v2.35
水平。Chrome
保持在Chrome v64.x
级别。 ( as per ChromeDriver v2.35 release notes
)Selenium
升级到当前级别Version 3.8.1
。Test
。转到http://chromedriver.chromium.org/downloads
根据您的操作系统复制下载链接
wget -N paste_the_link_you_copied
使用以下命令解压
unzip chromedriver_linux64.zip
通过以下命令授予权限
chmod +x chromedriver
然后按照下面的命令,如果它说已经存在(可能是旧版本)然后去那个路径(/usr/local/bin/chromedriver和/usr/bin/chromedriver)并删除chromedriver并再次运行命令
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
希望这可以帮助。 谢谢
由于您的 chrome 浏览器与网络驱动程序不兼容,因此引发了该错误。 如果您使用的是 Linux,那么只需执行以下命令。 sudo apt-get 更新
最近我也遇到了同样的问题,花了太多时间才弄清楚是怎么回事,在我遇到问题的情况下,我使用后没有关闭chrome进程,所以退出时应该检查进程是否退出该应用程序,这是我最后一次使用 Python 3 代码演示,希望对其他人有所帮助:
@staticmethod
def fetch_music_download_url(music_name: str):
chrome_driver_service = Service(ChromeDriverManager(chrome_type=ChromeType.GOOGLE).install())
chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--remote-debugging-port=9230")
driver = webdriver.Chrome(service=chrome_driver_service,
options=chrome_options,
executable_path="/usr/local/bin/chromedriver")
try:
driver.maximize_window()
driver.get('http://tool.example.cn/music/?page=audioPage&type=migu&name=' + music_name)
driver.implicitly_wait(5)
driver.find_element(By.CSS_SELECTOR, ".aplayer-list-download.iconfont.icon-xiazai").click()
urls = [a.get_attribute('href') for a in
driver.execute_script('return document.querySelectorAll(".modal-body a[href*=\'http\']")')]
for url in urls:
if "listenSong.do" in url:
logger.info("fetched url:" + url)
FetchMusic.do_save_music_download_url(url)
except Exception as e:
logger.error("scrapy impl error", e)
finally:
driver.stop_client()
driver.close()
driver.quit()
chrome_driver_service.stop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.