我必须使用多个浏览器(数千个),但不想每次启动浏览器时都打开一个新窗口;相反,我需要打开网页,处理内容并转到下一个。
从终端运行 Chrome(不一定是 Chrome)时:
$ google-chrome URL
该网页在实际浏览器的新窗口中打开:
Created new window in existing browser session.
有什么办法可以在实际的窗口上运行它,而不是打开一个新窗口?
或者:有没有办法在启动下一个浏览器会话之前终止当前创建的浏览器会话?如果浏览器最初关闭,我如何获取刚刚创建的新会话的 pid?
实际上,你想要的是在一个窗口中打开一个新的 url 而无需手动关闭当前窗口(如果我理解得很好),也不必手动关闭选项卡。
基本解决方案
解决方案可能是运行一个结合了两件事的命令:
这样浏览器的 pid 就不会改变,你也不必手动关闭选项卡和/或窗口。
下面的小脚本正是这样做的,使用的是 firefox。使用 firefox 的原因是(例如)chrome 根据定义有多个 pid,使过程更加复杂。
安装 wmctrl
该脚本使用 wmctrl 查找和关闭当前的 firefox 窗口,您可能必须先安装它:
剧本
如何使用
将脚本复制到一个空文件中,将其另存为
firejump.py
. 打开一个 firefox 窗口(任意地址,只是一个窗口)并通过命令运行脚本:禁用警告以关闭当前窗口
为了在没有烦人的 firefox 警告的情况下运行该过程,您正在关闭当前选项卡或窗口:通过在首选项中取消选中来禁用警告:
更高级的解决方案
如果您真的需要跳过包含数千个url 的列表,稍微扩展脚本(请参阅下面的脚本)并让它自动跳转到您在文本中创建的列表中的下一个 url 可能会很有用文件,然后使用组合键运行脚本以跳转到下一个 url。
如何使用
jump_list.py
urls.txt
用您的网址填充文件,每行一个:
等等
打开一个 firefox 窗口(任何地址,只是一个窗口)。
现在,当您运行脚本时,firefox 会打开第一个 url。
再次运行它,它将跳转到下一个 url,依此类推,直到列表的最后一个 url 已通过。
解释
该脚本
urls.txt
按索引读取文件中的行。它跟踪脚本在脚本自己的目录中创建的文件中的(最后使用的)索引。每次脚本运行时,数字都会加一,直到到达最后一行。剧本
通过以下方式运行脚本:
将其添加到 $PATH
更优雅的方法是将脚本保存到
~/bin
,使其可执行,删除语言扩展并通过命令运行它:添加到快捷键
要真正让它舒适,请将其添加到快捷键组合:系统设置>“快捷键”>“自定义快捷键”
我有一个替代解决方案的想法:您可以查看
正在运行的 chrome 会话的进程号。和
你可以杀死这个过程。希望对你有效。