如何解决Selenium驱动程序的Python“ with”语句
我的脚本的一部分是从Selenium WebDriver抓取结果,并且因为我的代码应该永远运行(直到我关闭它),所以我实际上没有实现\d{11}
方法的方法。我尝试使用“ with”语句来执行此操作,但是驱动程序仅在执行driver.quit()
之后关闭:
init_driver()
解决方法
也许是
with init_driver() as driver:
while True:
#...Do stuff
if condition == False:
driver.quit()
break
,
我想您可以显着地使用标准库中的contextlib来实现您的init_driver
函数作为上下文管理器。
例如,使用带有@contextlib.contextmanager
装饰器的最简单方法,它可能类似于:
from contextlib import contextmanager
@contextmanager
def init_driver(options,profile):
try:
driver = webdriver.Firefox(executable_path='geckodriver.exe')
driver.get('https://www.lsbet.com/live')
yield driver
finally:
# code to close/quit your driver
pass
(请注意使用yield
代替return
)
您可以使用上下文管理器。
fileName = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("Books","Book*.*"),("All files","*.*")))
在with语句下的逻辑完成后,上下文管理器将自动调用 exit ()方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。