【发布时间】:2014-06-07 13:20:56
【问题描述】:
我正在尝试通过 python Selenium API 绑定从 Firefox 获取网页的 console.log 输出。基于code for Chrome和一些advice from the documentation,我尝试了以下:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
d = DesiredCapabilities.FIREFOX
d['loggingPrefs'] = { 'browser':'ALL' }
fp = webdriver.FirefoxProfile()
fp.set_preference('webdriver.log.file', '/tmp/firefox_console')
driver = webdriver.Firefox(capabilities=d,firefox_profile=fp)
driver.set_window_size(1280,1024)
driver.get('http://foo.com')
try:
WebDriverWait(driver,10).until(lambda driver: driver.execute_script("return document.readyState") == "complete")
for entry in driver.get_log('browser'):
print entry
finally:
driver.quit()
但是,即使是调用console.log("foo") 的简单示例页面,我也没有在通过API 返回的日志条目或/tmp/firefox_console 文件中看到"foo"。难道我做错了什么?或者这是硒的限制?
【问题讨论】:
-
这是为现在来检查答案的人准备的。 driver.get_log('browser') 截至目前,它不适用于 firefox。有一个未解决的问题github.com/SeleniumHQ/selenium/issues/1161
-
上述问题已被关闭,有利于新问题:github.com/mozilla/geckodriver/issues/284 - 仍未修复。但是 Firefox 65+ 引入了“devtools.console.stdout.content”首选项,它将console.log 输出转储到标准输出。
标签: python firefox logging selenium