我正在编写一个使用Firefox网络驱动程序的python脚本。但是,在满足条件之前,不应创建浏览器实例。
当测试浏览器是否已经打开时,Spyder的编辑器中有一条消息:未定义的名称"driver"。
如何更改代码以消除该消息?
while True
if time_to_work():
if driver.service.is_connectable():
do_something()
else:
driver = webdriver.Firefox(profile, options=options)
print('Browser started..')
else:
if driver.service.is_connectable():
print('Closing browser..')
driver.quit()
如果没有driver
实例,就无法测试driver.service.is_connectable()
,因此需要在while True
之前声明驱动程序实例。您可以使用在不显示实际浏览器窗口的情况下初始化driver
实例
options = Options()
options.headless() = True
并使用初始化驱动程序
driver = webdriver.Firefox(options=options, executable_path=r'[YOUR GECKODRIVER PATH]')
(感谢在这里找到的公认答案(。然后您可以将time_to_work()
与其他条件一起检查。
要在第一次通过(延迟加载(时打开浏览器,请将driver
初始化为None
,然后检查time_to_work
中的值
试试这个代码:
driver = None
while True
if time_to_work():
if not driver: # start browser
driver = webdriver.Firefox(profile, options=options)
print('Browser started..')
do_something()
else:
if driver:
print('Closing browser..')
driver.quit()
driver = None