简单问题:如何在使用Python绑定的Selenium时完全禁用日志记录,ex代码如下:
browser = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
options = webdriver.ChromeOptions();
options.add_argument('--log-level 3')
browser = webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)
甚至:
options = webdriver.ChromeOptions();
options.add_argument('--disable-logging')
browser = webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)
但是仍然会在每次新的测试运行中出现'chromedriver.log'文件.
我正在尝试使用 Selenium 运行 Python 脚本,虽然一切正常,但我个人的 print() 到控制台行隐藏在大量 Selenium/Chromedriver 输出之间,如下所示:
1128/150256.806:INFO:CONSOLE(0)] "The SSL certificate used to load resources from [some-link.com] will be distrusted in the future. Once distrusted, users will be prevented from loading these resources. See https://g.co/chrome/symantecpkicerts for more information.", source: [current-page.com] (0)
Run Code Online (Sandbox Code Playgroud)
我检查了这些链接是什么,它们只是我正在查看的页面上的广告,因此完全没有用。此外,由于每次页面加载/重新加载时都会随机生成广告,因此链接不同,因此输出永无止境。这非常烦人,并且很难看到我的程序中实际发生了什么。有什么办法可以用一些 Selenium 选项或其他东西来关闭它吗?
奇怪的是,使用 PyDev 在 Eclipse Oxygen 中运行程序根本不显示任何 Selenium 的输出,只有当我使用命令行运行它时。
编辑:按照提到的可能重复项的说明没有帮助。我尝试将日志记录级别设置为最高、CRITICAL,但上面提到的输出仍然通过并淹没了控制台。
我的jenkins关于我的功能测试的失败报告充满了这样的行:
selenium.webdriver.remote.remote_connection: DEBUG: Finished Request
selenium.webdriver.remote.remote_connection: DEBUG: POST http://127.0.0.1:52932/session/60d406aa8e55ac841cf4efb4a43e63be/element {"using": "css selector", "sessionId": "60d406aa8e55ac841cf4efb4a43e63be", "value": "#Login input[name=email]"}
Run Code Online (Sandbox Code Playgroud)
我不关心它们,并且我实际上想要看到的每一行堆栈跟踪都有数百条这样的输出行.我该如何关闭它们?
到目前为止我尝试过的东西不起作用:
from selenium import webdriver
driver = webdriver.Chrome(
service_args=['--silent'],
service_log_path='/tmp/throwaway.log')
Run Code Online (Sandbox Code Playgroud)
和...
from selenium import webdriver
driver = webdriver.Chrome(
service_args=['2>/dev/null'])
Run Code Online (Sandbox Code Playgroud)
和...
from selenium import webdriver
driver = webdriver.Chrome(
service_args=['>', '/dev/null', '2>&1'])
Run Code Online (Sandbox Code Playgroud)
所有这些都没有减少任何输出.
长话短说:我正试图在selenium独立服务器上将日志级别更改为WARNING.我在CentOS 6.7上运行2.48.2.
我试过服务器端,即-Dselenium.LOGGER.level=WARNING在启动服务器时添加- 没有用.然后我尝试-Djava.util.logging.config.file=/opt/selenium/my.properties使用默认级别的自定义属性文件作为警告 - 不起作用.
然后我尝试在客户端这样做,我正在使用WebDriver API for python.我试过这个帖子的两个建议,也没用.
是否有一个很好的非hacky方式将级别更改为警告?或者至少让它省略击键?它在我的日志文件中转储密码,我不喜欢这样.
我是python新手,我写了一个程序来收集信息(python+selenium+geckodriver+firefox),一切正常,但是geckodriver.exe生成的日志太多,有时geckodriver.log的单个文件大小甚至达到8GB 。
我搜索了 Galaxy、Google 和 StackOverflow,我找不到禁用 geckodriver.log 的解决方案,这个问题与我的类似,我知道使用一些参数可以减少日志
geckodriver.exe --log fatal
Run Code Online (Sandbox Code Playgroud)
我知道 python 可以分配 geckodriver 的路径
driver=webdriver.Firefox(executable_path='C:\geckodriver.exe')
Run Code Online (Sandbox Code Playgroud)
是否可以将它们组合在一起?如下所示:
driver=webdriver.Firefox(executable_path='C:\geckodriver.exe --log fatal')
Run Code Online (Sandbox Code Playgroud)
我尝试过但失败了,有人可以帮助我吗?谢谢!
python ×5
selenium ×4
command-line ×1
firefox ×1
geckodriver ×1
jenkins ×1
logging ×1
monitoring ×1
security ×1
webdriver ×1
windows ×1