Ответ 1
Ваш код верен, когда дело доходит до функции get_log
, просто добавьте оператор print
в конец так:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# enable browser logging
d = DesiredCapabilities.FIREFOX
d['loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Firefox(capabilities=d)
# load some site
driver.get('http://foo.com')
# print messages
for entry in driver.get_log('browser'):
print entry
print
driver.quit()
Фактически:
print len(driver.get_log('browser'))
возвращает 53
в моем примере с этим как примерную запись в списке:
{u'timestamp': 1407591650751, u'message': u"Expected ':' but found '}'. Declaration dropped.", u'level': u'WARNING'}
Похоже на плохую проблему char. Что касается того, почему в файле /tmp/firefox_console
нет вывода, у меня нет подсказки, логгер, кажется, бросает информацию об отладке webdriver, но не выводит console.log
.
ИЗМЕНИТЬ: По-видимому, приведенный выше код не возвращает данные из console.log
. Насколько мне известно, это не ошибка Selenium, а проблема с Firefox. Мне удалось обойти это, установив Firebug вместе с ConsoleExport плагин для Firebug, затем укажите его на какой-то сервер протоколирования. См. Также this SO answer для получения подробной информации о том, как включить Firebug программно из Selenium.
См. этот пояс для более подробной информации: https://gist.github.com/CGenie/fc63536a8467ae6ef945