我有一些使用机器人框架的SeleniumLibrary测试套件。我用Firefox和geckodriver运行了这些测试。每当我运行测试套件时,都会创建一个geckodriver-*.log文件。
例如,在运行测试套件之前,我只有我的.robot文件:
$ ls
example.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的My 文件
*** Settings ***
Library SeleniumLibrary run_on_failure=None
*** Test Cases ***
Example Test Case
Open Browser https://stackoverflow.com/ Firefox
Close Browser版本和操作系统信息
发布于 2021-01-03 20:15:27
解决方案是将Open Browser关键字的Open Browser参数设置为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,而不是登录到当前工作目录中的文件。
注意事项:本例使用内联蟒蛇评价,这是机器人框架3.2中的一个新特性。
https://stackoverflow.com/questions/65553842
复制相似问题