导入"请求"模块时,Selenium窗口立即关闭



我正试图将Selenium和Beautiful Soup与Python一起使用,但遇到了一个相当奇怪的问题——Selenium窗口只有在请求模块未导入的情况下才会保持打开状态,否则它会保持打开状态约1秒并关闭
重要的是,只有当我在另一个文件中创建类时才会发生这种情况-当我在同一文件中创建该类时,它会正常打开。以下是两个版本的代码-第一个版本的窗口保持打开,第二个版本的窗户立即关闭:

1:作品

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from test import Watcher
service = Service("C:Program Files (x86)Developmentchromedriver.exe")
driver = webdriver.Chrome(service=service)
tw = Watcher(driver)
tw.open_browser()
# OTHER FILE CALLED test
class Watcher:
def __init__(self, driver):
self.driver = driver
def open_browser(self):
self.driver.get("https://www.google.com")

2:关闭

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from test import Watcher
import requests
service = Service("C:Program Files (x86)Developmentchromedriver.exe")
driver = webdriver.Chrome(service=service)
tw = Watcher(driver)
tw.open_browser()
# OTHER FILE CALLED test
class Watcher:
def __init__(self, driver):
self.driver = driver
def open_browser(self):
self.driver.get("https://www.google.com")

我想知道这是否与urllib3中的Keep Alive和Connection Pooling有关,尽管程序代码中没有使用请求模块。

当程序终止时,HTTP连接将被释放,浏览器窗口将关闭。

添加此项后,您将看到浏览器窗口一直处于打开状态,直到程序运行完毕。程序只是完美地正常终止,没有任何错误。

from time import sleep
for _ in range(10):
sleep(1)

[编辑]我有一个解决方案!

detach(布尔值(—当驱动程序收到退出命令时,浏览器是否关闭。

参见类:Selenium::WebDriver::Chrome::Options

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from watcher import Watcher
import requests
service = Service("C:Program Files (x86)Developmentchromedriver.exe")
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=service, options=options)
tw = Watcher(driver)
tw.open_browser()

最新更新