【问题标题】:How to dump log messages into a separate text file Selenium Python如何将日志消息转储到单独的文本文件 Selenium Python
【发布时间】:2020-06-21 08:28:05
【问题描述】:

如何将终端中显示的所有日志消息转储到单独的文本文件中? 我正在将 Selenium 与 Python 和 Chrome 网络驱动程序一起使用。

【问题讨论】:

  • 如果你以python script.py > file.txt 运行它,那么它应该保存在file.txt 中。最终它还需要将stderr 重定向到文件 - 在Linux上你可以做python script.py > file.txt 2>&1

标签: python selenium selenium-chromedriver


【解决方案1】:

我不知道您是如何获得这些消息的,但使用 Google 我在 Chromedriver 文档 Logging 中找到的,它使用这样的设置将一些日志保存在文件 log.txt

from selenium import webdriver

driver = webdriver.Chrome(service_args=["--log-path=log.txt"])
#driver = webdriver.Chrome(service_args=["--log-path=log.txt", "--verbose"])

#driver.get('https://stackoverflow.com')

顺便说一句: 在文档中显示通常它会发送到stderr,因此使用2> log.txt 也应该有效。

【讨论】:

  • 它确实有效,但出于一些奇怪的原因,它还在应该显示在终端上的文本文件中打印输入文本。
  • 我不知道您的输入文本是什么意思-您没有显示有问题的代码。使用重定向,您可以获得通常显示在终端中的文件文本,因为要显示文本,它使用 stdout 并且重定向 > log.txt 将其发送到文件。但在这个答案中,我不使用重定向。
【解决方案2】:

使用 Try/except 语句,您会收到作为变量的错误消息。

【讨论】:

    【解决方案3】:

    最简单的方法是在终端手动运行并将stdout(标准输出)重定向到文件

    python script.py > output.txt
    

    它可能还需要将stderr(标准错误输出)重定向到文件

    python script.py > output.txt 2> error.txt
    

    或将两者重定向到同一个文件

    python script.py > output.txt 2>&1
    

    此方法适用于所有在终端中显示内容的程序。

    【讨论】:

    • 好吧,我尝试了这种方法,但它打印的是文本文件中的输入文本,而不是日志和错误。有没有其他办法?
    • 你是在终端手动运行的吗?你用过2>&1 吗?它可能会发送有关标准错误的日志,然后您必须重定向 2>
    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多