繁体   English   中英

Python3,Selenium,Chromedriver控制台窗口

[英]Python3, Selenium, Chromedriver console window

我已经使用python3和selenium库进行了硒测试。

我还使用Tkinter制作了一个GUI,以在(帐户,密码..)上输入一些内容。

通过保存到.pyw扩展名,我设法隐藏了python的控制台窗口。 当我用代码制作可执行文件时,即使以.py扩展名保存,控制台也不会显示。

但是,每次chromedriver启动时,它也会启动一个控制台窗口,而当驱动程序存在时,该窗口不存在。

因此,在一个循环中,我剩下许多WebDriver控制台。

是否有解决方法来防止驱动程序每次运行时启动控制台?

我讨厌用硒处理这个问题,直到我想起这就像上下文对open的用法一样,对于上下文管理器来说是一个显而易见的用例。

我确实发现硒将在此请求中正式将其添加到其包装中

在正式添加此代码之前,此代码段应为您提供所需的功能:)

import contextlib

@contextlib.contextmanager
def Chrome(*args, **kwargs):
    webdriver = webdriver.Chrome(*args, **kwargs)
    try:
        yield webdriver
    finally:
        webdriver.quit()

with Chrome() as driver:
    # whatever you're planning on doing goes here

driver.close()driver.quit()是在Selenium WebDriver中关闭浏览器会话的两种不同方法。

driver.close() -关闭设置焦点的浏览器窗口。

driver.quit() –它基本上调用了driver.dispose方法,该方法又关闭了所有浏览器窗口并优雅地结束了WebDriver会话。

每当您要结束程序时,都应使用driver.quit。 它将关闭所有打开的浏览器窗口,并终止WebDriver会话。 如果在程序末尾不使用driver.quit,WebDriver会话将无法正确关闭,并且文件也不会从内存中清除。 这可能会导致内存泄漏错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM