我有几个 ruby 脚本可以驱动 Chrome 浏览器。我正在使用此代码使用 Chrome 75
...caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps[:chrome_options] = {detach: true}
browser = Watir::Browser.new :chrome, desired_capabilities: caps
工作正常,即即使脚本完成,Chrome浏览器也会自行分离。
由于 Chrome 将自身更新到版本 76.0.3809.100,这不再有效,因此对于我的所有脚本,Chrome 都会在分离不再工作时立即打开和关闭。
我也试过这个
browser = Watir::Browser.new :chrome, :chrome_options => {:detach => true }
但这也行不通。
我正在使用Watir 6.16.5,ChromeDriver 76.0.3809.68和Selenium-webdrive 3.142.3
我很欣赏任何输入如何启动使用此设置使用 Watir 分离的 Chrome 实例。
附言我目前的解决方法:我在每个脚本结束时添加了 20 分钟的睡眠时间......
您提供的功能指示分离在desiredCapabilities
部分(旧的 JSON 线路协议(中正确添加,但未在新的capabilities
部分(新的 w3c Web 驱动程序标准协议(中添加。当Chrome切换到v75时,它默认打开w3c模式。这几乎可以肯定适用于Chrome 74,不适用于Chrome 75或76。
这个问题是瓦蒂尔试图(以不正确的方式(弥补长期存在的硒问题的结果。一旦我们同意Selenium在4.0(https://github.com/SeleniumHQ/selenium/pull/7378(中需要是什么样子,那么我将有时间修复Watir,以便事情按照您期望的方式工作。
我不喜欢这就是你现在必须做的事情,但我刚刚验证了这有效:
options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true)
browser = Watir::Browser.new :chrome, :options => options