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

Ruby开发Selenium Bot时Chrome页面加载后自动关闭,求解决方案

解决Chrome浏览器自动关闭的问题

我明白你遇到的困扰了——脚本跑完页面加载后浏览器就直接自动关闭,根本没机会进行后续操作对吧?这其实是因为Ruby脚本执行到末尾时,driver对象会被自动销毁,关联的Chrome进程也就跟着终止了。下面给你两种实用的解决办法:

方法一:配置Chrome选项让浏览器保持打开

你可以给Chrome的配置选项加上detach参数,告诉Selenium在脚本执行完毕后不要关闭浏览器。修改后的代码如下:

require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-translate')
# 添加这一行,让浏览器在脚本结束后保持运行状态
options.add_option("detach", true)

driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "https://google.com"

方法二:在脚本末尾添加阻塞代码

如果不想修改浏览器配置,也可以在脚本最后加一段让程序暂停执行的代码,这样脚本不会立刻结束,driver对象就不会被销毁,浏览器也就会一直打开。比如用gets等待你输入回车,或者用sleep设置固定等待时长:

方式1:等待用户输入回车后结束

require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-translate')

driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "https://google.com"

# 等待你输入回车后,脚本才会结束
gets

方式2:固定时长休眠

require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-translate')

driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "https://google.com"

# 休眠30秒,足够你完成后续操作
sleep(30)

两种方法里,方法一更适合需要长期保持浏览器打开进行操作的场景,方法二则适合临时调试时使用,你可以根据自己的需求来选~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:42:51