如何解决运行 Selenium geckodriver 而不生成 geckodriver 日志文件
我有一些使用 Robot Framework 的 SeleniumLibrary 测试套件。我使用 Firefox 和 geckodriver 运行这些测试。每当我运行测试套件时,都会创建一个 geckodriver-*.log
文件。
例如,在运行测试套件之前,我只有 .robot
文件:
$ ls
example.robot
然后运行robot,生成geckodriver日志文件:
$ robot --output NONE --log NONE --report NONE example.robot
<output of running test suite>
$ ls
example.robot geckodriver-1.log
如果我重新运行测试套件,则会创建一个 geckodriver-2.log
文件,并且第三次运行该套件会生成一个 geckodriver-3.log
文件,依此类推。
如何在不创建任何 geckodriver 日志文件的情况下运行我的测试套件?
我知道这一定是可能的,因为它可以通过将 service_log_path
设置为 /dev/null
在常规 python(没有机器人)中完成,如下所示:
from selenium import webdriver
import shutil
driver = webdriver.Firefox(
executable_path=shutil.which('geckodriver'),service_log_path='/dev/null'
)
driver.get('https://stackoverflow.com/')
driver.quit()
我的 *.robot
文件,用于最小可重现示例
*** Settings ***
Library SeleniumLibrary run_on_failure=None
*** Test Cases ***
Example Test Case
Open Browser https://stackoverflow.com/ Firefox
Close Browser
版本和操作系统信息
- 操作系统:Linux
- 火狐:79.0
- 壁虎驱动程序:0.26.0
- Python:3.6.9
- 机器人框架:3.2.2
- robotframework-seleniumlibrary:4.4.0
解决方法
解决方法是将 Open Browser
关键字的 service_log_path
参数设置为 os.path.devnull
,如下所示:
*** Settings ***
Library SeleniumLibrary run_on_failure=None
*** Test Cases ***
Example Test Case
Open Browser https://stackoverflow.com/ Firefox service_log_path=${{os.path.devnull}}
Close Browser
然后 geckodriver
将登录到 os.path.devnull
而不是当前工作目录中的文件。
注意:此示例使用 inline python evaluation,Robot Framework 3.2 中的一项新功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。