我是python的新手,我写了一个程序来为我收集信息(python + selenium + geckodriver + firefox),一切正常,但是geckodriver.exe生成了过多的日志,有时geckodriver.log的文件只有一个大小。甚至达到8GB。
我在银河,谷歌和stackoverflow上进行了搜索,找不到禁用geckodriver.log的解决方案,this question similar to mine,我知道使用某些参数可以减少log
geckodriver.exe --log fatal
我知道python可以分配geckodriver的路径
driver=webdriver.Firefox(executable_path='C:\geckodriver.exe')
是否可以将它们组合在一起?如下:
driver=webdriver.Firefox(executable_path='C:\geckodriver.exe --log fatal')
我尝试但失败了,有人可以帮我吗?谢谢!
答案 0 :(得分:1)
如果您参考 Firefox 选项对象文档,您可以看到 log 是此对象的一个属性
https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions
所以你可以把它添加为
options = webdriver.FirefoxOptions()
options.log.level = "TRACE"
driver = webdriver.Firefox(options=options)
您也可以将其设置为:
options.set_capability("moz:firefoxOptions", {'log': {'level': 'TRACE'}})
driver = webdriver.Firefox(options=options)
您可以使用上述答案登录到特定路径,否则日志将在您的 gekodriver 所在的同一目录中创建为 gekodriver.log
答案 1 :(得分:0)
我认为将您的 service_log_path='' 设置为空会关闭日志。我可能是错的,但我似乎没有日志文件,这就是我使用的设置。无论如何,我厌倦了打字...
browser = webdriver.Firefox(service_log_path='')
(我使用该设置是因为每次尝试指定 PATH 时都会出现错误。)所以我进入了文件夹...
C:\Users\current-user\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\firefox
然后我找到了文件 service.py 并在第 25-26 行我从...中删除了 geckodriver.log
def __init__(self, executable_path, port=0, service_args=None,
log_path="geckodriver.log", env=None):
这并没有解决我的问题,所以我在第 53 行进入同一文件夹中的文件 webdriver.py 并从...中删除了 geckodriver.log
service_log_path="geckodriver.log", firefox_options=None,
和 bam 现在我不必再将 service_log_path 设置为空。但是,也许如果您将日志路径设置为 service_log_path="" ,它会解决您的问题。不确定这是否正是您要查找的内容,但它解决了我的问题。我似乎根本没有日志文件,更不用说 8GB 大小的了。