在键盘和鼠标上向多个浏览器选项卡寻求多播用户输入的bash脚本

时间:2016-01-01 22:58:27

标签: bash browser tabs automation mouse

我很好奇是否可以在浏览器中打开多个选项卡,其中所有选项卡都具有相同的内容,并且能够按键或鼠标点击以使所有选项卡都能获得相同的输入。我相信我对自己想要做的事情的表述可能会让人感到困惑,因为用我的话来搜索这些内容毫无结果。因此,我将用具体的东西来说明:

在我的情况下,我希望在所有标签中显示Google search的同一窗口中有几个标签。将其中一个选项卡选为浏览器中的当前视图。 然后我会输入一个查询并单击第一个可用链接。我想要的输出将使所有选项卡同时经历查询搜索和链接点击。

我想通过bash脚本来实现这个目标[不确定这是否可行]并且非常感谢我提供了一些示例和阅读材料,我可以看一下上面详细介绍的示例。如果还有其他方法,我也很乐意看到它们。最好是我可以编码和玩的东西。

我发现了一个类似的问题here,但问题没有回答,因为它看起来有点过于笼统。

如果它有助于确定答案:我在Ubuntu 15.04上运行Firefox 43。

如果问题看起来有点模糊,请提前道歉。我非常乐意提供所要求的澄清。

1 个答案:

答案 0 :(得分:1)

您可以通过X服务器(控制所有图形窗口的服务)向Windows发送键盘和鼠标输入。

例如,您可以使用以下

向Chrome窗口发送F5按键
CHROME_WINDOW_ID="$(xdotool search --class Chrome | head -n 1)"
xdotool key --window "$CHROME_WINDOW_ID" F5

您可以类似地使用mouse_moveclick;有关详细信息,请参阅xdotool

我不确定您是否可以对单个浏览器标签执行此操作(除非您让脚本事先单击正确的选项卡),但绝对适用于各个浏览器窗口。

您可能会这样做:

# Write all Chrome window IDs to array
xdotool search --class Chrome | tr '\n' ' ' | read -a WINDOW_IDS

for WINDOW in ${WINDOW_IDS[@]} ; do
    # Do actions on $WINDOW
done

编辑: 如果您的问题与操作网页特别相关,您可能还需要查看浏览器自动化工具,例如Seleniummechanizesplinter