微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium驱动程序的Python“ with”语句

如何解决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 举报,一经查实,本站将立刻删除。