我们通常会使用Selenium编写UI测试,为浏览器开启Headless模式(执行操作时不显示GUI窗口)会很方便。最新版本的Chrome和Firefox中,均已支持headless模式。
在Selenium中,为这两个浏览器开启headless模式的方式基本相同:
Chrome:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('headless') driver = webdriver.Chrome(options=options)
Firefox:
from selenium import webdriver options = webdriver.FirefoxOptions() options.add_argument('headless') driver = webdriver.Firefox(options=options)
我提交的PR#5120添加了和Chrome相同的导入接口,如果你使用Selenium小于3.8.0版本,则需要将上面的webdriver.FirefoxOptions()
替换为webdriver.firefox.options.Options()
。
另外,你也可以使用环境变量MOZ_HEADLESS
来为Firefox开启headless模式:
import os from selenium import webdriver os.environ['MOZ_HEADLESS'] = '1' # <- this line driver = webdriver.Firefox()
本文基于我在Stack Overflow的这篇回答:https://stackoverflow.com/a/47481793/5511849