运行 Selenium geckodriver 不生成 geckodriver 日志文件
Running Selenium geckodriver without generating geckodriver log files
我有一些Robot Framework test suites that use the 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://whosebug.com/')
driver.quit()
我的 *.robot
文件,用于最小的可重现示例
*** Settings ***
Library SeleniumLibrary run_on_failure=None
*** Test Cases ***
Example Test Case
Open Browser https://whosebug.com/ Firefox
Close Browser
版本和OS信息
- 操作系统: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://whosebug.com/ Firefox service_log_path=${{os.path.devnull}}
Close Browser
然后 geckodriver
将记录到 os.path.devnull
而不是当前工作目录中的文件。
注意:本示例使用inline python evaluation,Robot Framework 3.2 中的一项新功能。
我有一些Robot Framework test suites that use the 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://whosebug.com/')
driver.quit()
我的 *.robot
文件,用于最小的可重现示例
*** Settings ***
Library SeleniumLibrary run_on_failure=None
*** Test Cases ***
Example Test Case
Open Browser https://whosebug.com/ Firefox
Close Browser
版本和OS信息
- 操作系统: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://whosebug.com/ Firefox service_log_path=${{os.path.devnull}}
Close Browser
然后 geckodriver
将记录到 os.path.devnull
而不是当前工作目录中的文件。
注意:本示例使用inline python evaluation,Robot Framework 3.2 中的一项新功能。