You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium在Chrome驱动已安装时提交表单后自动关闭浏览器问题

问题:Chrome驱动已存在时Selenium浏览器自动关闭

我用Selenium结合forminfo.py实现表单自动填充,目前在Instagram上测试。代码逻辑是检查指定路径是否已安装Chrome驱动,未安装则自动下载安装,已安装则直接运行表单填充流程。

遇到的问题:

  • 驱动未安装时,自动安装后所有流程运行正常
  • 驱动已存在时,表单填充完成并点击提交按钮后,浏览器会立即关闭,终端无任何报错信息

临时解决方案是在代码末尾添加breakpoint(),但担心后续扩展代码并打包为.exe文件(使用pyInstaller或Nuitka)时会出现问题,因此希望找到更合适的解决方案。我确定问题出在Chrome驱动下载的代码部分,因为添加该代码前一切正常。

代码如下

################## IMPORTS ##################

import forminfo
import os
import urllib.request as urllib
import webbrowser
import zipfile
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.proxy import Proxy, ProxyType
from time import sleep

################## CHROME DRIVER DOWNLOAD ##################

path = "C:/Users/"+os.getlogin()+"/Documents/chromedriver.exe"
isFile = os.path.isfile(path)
if not os.path.isfile(path): 
    webbrowser.get('windows-default').open("http://www.google.com", new=0)
    zip_path, _ = urllib.urlretrieve(forminfo.downloadurl)
    urllib.urlopen = zip_path
    extract_dir = "C:/Users/"+os.getlogin()+"/Documents"
    zipfile.ZipFile(zip_path, "r").extractall(extract_dir)
else:
    print("Starting now....")

################## PROXY INFO ##################

prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.socks_version = 5
prox.socks_proxy = forminfo.socks5ip
#prox.http_proxy = "ip_addr:port"
#prox.ssl_proxy = "ip_addr:port"

################## BROWSER ##################


capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)

#
capabilities['acceptInsecureCerts'] = True
capabilities['acceptSslCerts'] = True
#

driver_service = Service(executable_path="C:/Users/"+os.getlogin()+"/Documents/chromedriver")
chrome_options = Options()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("start-maximized")
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches",["enable-automation"])

#
chrome_options.add_argument("--ignore-certificate-error")
chrome_options.add_argument("--ignore-ssl-errors")
#

driver = webdriver.Chrome(service=driver_service, options=chrome_options, desired_capabilities=capabilities)
driver.get('https://www.instagram.com')


################## BOT ##################


sleep(3)
elem = driver.find_element(By.NAME, "username")
elem.send_keys(forminfo.username)

elem = driver.find_element(By.NAME, "password")
elem.send_keys(forminfo.password)

sleep(3)
elem = driver.find_element(By.XPATH, "//*[@id=\"loginForm\"]/div/div[3]/button/div")
elem.click()

内容的提问来源于stack exchange,提问作者calabasasboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:03:16