Selenium WebDriver驱动窗口自动关闭,该如何解决?
问题解决:LinkedIn自动化脚本窗口自动关闭及登录异常
核心问题拆解
你的脚本窗口自动关闭主要有两个原因:
- Selenium脚本执行完毕后,会自动终止浏览器进程导致窗口关闭
- 代码里存在登录按钮点击的语法错误,登录逻辑未执行就提前结束了
另外代码还有几个影响功能的细节问题:
- 登录按钮的定位错误,
join-form-submit是注册按钮的ID,并非登录按钮 - 直接访问feed页面会被重定向到登录页,不如直接访问登录页更稳定
修正后的完整代码
from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep # 直接访问LinkedIn登录页,避免重定向问题 driver = webdriver.Chrome() driver.get('https://www.linkedin.com/login') sleep(2) # 替换为你的登录信息 email = '你的邮箱地址' password = '你的密码' # 定位邮箱输入框并输入 box_email = driver.find_element(By.XPATH, '//input[@id="username"]') box_email.send_keys(email) # 定位密码输入框并输入 box_password = driver.find_element(By.XPATH, '//input[@id="password"]') sleep(1) box_password.send_keys(password) # 定位登录按钮并执行点击(修正语法错误和定位错误) button_login = driver.find_element(By.XPATH, '//button[@type="submit"]') sleep(1) button_login.click() # 必须加括号调用click方法 # 保持窗口不关闭,直到手动确认 input("按回车键关闭浏览器...") driver.quit()
关键修正说明
- 阻止窗口自动关闭:脚本末尾添加
input("按回车键关闭浏览器..."),让脚本暂停等待用户输入,避免执行完毕后直接关闭浏览器;也可以根据需求用driver.quit()手动控制关闭时机 - 修复点击语法错误:把
button_login.click改为button_login.click(),这是Python方法调用的基础语法问题 - 修正元素定位:LinkedIn登录页的邮箱输入框ID为
username,用type="submit"定位登录按钮更可靠,避免平台ID变更导致定位失效 - 优化访问路径:直接访问登录页
https://www.linkedin.com/login,减少重定向带来的加载不稳定
额外提醒
- 尽量少用固定时长的
sleep(),可以改用Selenium的显式等待(WebDriverWait)等待元素加载,提升脚本稳定性 - LinkedIn有反爬机制,频繁自动化操作可能触发验证码或账号限制,建议控制操作频率
内容的提问来源于stack exchange,提问作者kkaaique
相关产品推荐
相关产品推荐

