有没有办法只使用终端在Ubuntu中重新加载Google Chrome标签页。我不想只是打开一个新窗口,而是要实际刷新标签!
额外问题: 这在其他浏览器中也是可行的,例如Opera,Safari,Firefox。
答案 0 :(得分:5)
看起来user2974830的答案是使用xdotool的一些不正确(可能是旧的)语法。 --search
应该只是search
(没有短划线)而--windowid
应该是--window
这里说的是一个更全面的解决方案that I found here。该链接使用inotifywait,但我更喜欢包含inotifywait的entr。
echo "$(date --rfc-3339=seconds) Refresh: $FILE"
CUR_WID=$(xdotool getwindowfocus)
#gets the first $BROWSER window, if you have more than one
#$BROWSER window open, it might not refresh the right one,
#as an alternative you can search by the window/html title
WID=$(xdotool search --onlyvisible --class $BROWSER|head -1)
#TITLE="window/html file title"
#WID=$(xdotool search --title "$TITLE"|head -1)
xdotool windowactivate $WID
xdotool key 'ctrl+r'
xdotool windowactivate $CUR_WID
我将其保存到名为reload-chrome-nix
的文件中,并运行find . -type f | entr ./reload-chrome-nix
答案 1 :(得分:4)
sudo apt-get update
sudo apt-get install xdotool
DISPLAY=:0 xdotool key F5
这就是您所需要的。
答案 2 :(得分:3)
对于您的问题,这可能是(最简单的)解决方案
xdotool key --windowid "$(xdotool --search --class Chrome | head -n 1)" F5
https://unix.stackexchange.com/questions/87831/how-to-send-keystrokes-f5-from-terminal-to-a-process
编辑:这应该适用于其他浏览器而没有问题
答案 3 :(得分:3)
通过发送 Control + r
重新启动Chrome窗口,然后重新加载浏览器的一个班轮xdotool search --onlyvisible --class Chrome windowfocus key ctrl+r
答案 4 :(得分:2)
如果其中一些方法不适合您,我正在为vivaldi寻找类似的方法,并设法将此处的某些内容与another post
中的其他内容组合在一起 xdotool windowactivate $(xdotool search --class vivaldi | tail -1) key ctrl+r windowactivate $(xdotool getactivewindow)
您可以在第一个键之后添加其他键-键值组合
答案 5 :(得分:1)
重要说明:在此之后发布了一个可能更好的答案,请根据Chromix-Too工具查看答案,并使用您喜欢的用例
这个答案从blackloop友情提供的解决方案开始,但它可以与多个窗口一起使用,让您在右侧窗口中选择正确的选项卡,使用字符串比较选项卡标题并使用某些浏览器的功能来选择通过发送击键来获取特定选项卡。
代码有两个参数:窗口中的标签位置(1到8之间的数字)和标签标题的子字符串,用于标识正确的标签。
以下代码基于谷歌浏览器,请参阅一些代码行的注释以了解如何针对Firefox案例更改它(或者您可以修改它以在输入中获取浏览器名称)。
将此代码保存在文件中,例如tab_refresh.sh
(注意:此代码扩展this code,如在blockloop的答案中那样)
#!/bin/bash
BROWSER=google-chrome # Or BROWSER=firefox for the Firefox case
TABNUM=$1
TABTITLE=$2
CUR_WID=$(xdotool getwindowfocus)
for WID in $(xdotool search --onlyvisible --class $BROWSER)
do
xdotool windowactivate $WID
xdotool key "ctrl+$TABNUM"
# Or "alt+$TABNUM" for the Firefox case
WIN_TITLE=$(xdotool getwindowname $WID)
if [[ $WIN_TITLE = *"$TABTITLE"* ]]
then
xdotool key 'F5'
fi
done
xdotool windowactivate $CUR_WID
创建文件后,将其设为可执行文件,例如键入:
chmod +x tab_refresh.sh
最后,要使用此脚本,您必须键入以下内容:
./tab_refresh.sh TABNUM TABTITLE
例如,假设您要更新Google Chrome窗口中的第4个标签,其中第4个标签标题包含字符串foo
。
./tab_refresh.sh 4 foo
答案 6 :(得分:1)
Chromix-Too是一种工具,可通过命令行向现有Chrome会话发送多种类型的命令,包括标签重新加载,并提供标签标识符。如上所述here,它由三个组成部分组成:Google Chrome扩展程序,服务器和chromix-too
实用程序。
在Chrome浏览器上安装extension。
如果尚未安装,请安装npm软件包管理器。在Unix系统上安装它的一般方法是执行(使用root权限)
curl -L https://www.npmjs.com/install.sh | sh
npm工具通常可以使用其他知名的包管理器安装,例如在Ubuntu中你应该能够做到
sudo apt-get install npm
通过npm
安装chromix-too
包
sudo npm install -g chromix-too
首先,启动服务器:
chromix-too-server
现在,使用chromix-too
工具,您可以列出所有带有相应标识符的标签,以便能够选择正确的标签。
chromix-too ls
结果将类似于
35 The foo bar website
136 https://another.website.foo/
142 https://another.one.bar/
如您所见,第一列显示唯一的数字标识符,第二列显示标签标题。
现在假设您要重新加载列表中的第二个选项卡,即标识符为136的选项卡。您可以通过键入
来执行此操作chromix-too reload 136
如果您无法使用数字标识符选择选项卡,则还有其他几种方法。例如,您可以根据标题选择标签,也可以选择固定标签或取消固定标签。有关选项卡选择以及一般Chromix-Too用法的帮助,请参阅this link。正如您在教程中看到的那样,甚至可以在不使用浏览器缓存的情况下强制重新加载。
使用此方法相对于其他答案中显示的其他解决方案(包括我之前的答案)的主要好处是,您可以以非常精确的方式选择和重新加载标签(例如,通过使用唯一的ID)并且无需将键击发送到GUI并聚焦窗口,这可能会让人感到不舒服。例如,如果您使用计算机键入某些文本,前面答案中显示的其他脚本将更改焦点,您最终可能会在浏览器上键入内容窗户意外。使用此解决方案可以避免这种情况。
答案 7 :(得分:0)
chrome-remote-reload需要启用远程调试,但在Linux和Windows上都可以使用。
--devtools-server-port
参数运行Chrome(/ Chromium / Iron ...或甚至Opera或Edge,但最后一个使用--remote-debugging-port=9222
)以启用远程调试(只需记住关闭所有实例)预先浏览器。)