我正在尝试添加到我当前的代码行(如果可能的话),以便在启动期间继续在 Chromium 上的 Kiosk 中打开我的网页,我已经使用下面的代码进行了管理,但是我正在尝试输入用户名和密码自动,然后按登录按钮进入随后的网页。这是我到目前为止所拥有的,存储在 /home/pi/kiosk.sh 中
#!bin/bash xset s noblank xset 关闭 xset-dpms 整理-idle 0 -root & chromium-browser --noerrdiaglogs --disable-infobars --kiosk https://192.168.0.1/webconsole
然后,我在 SystemD 中存储了另一组已启用的代码,以便它在启动时执行。位于:/lib/systemd/system/kiosk.service:
[单元] 描述=Chromium Kiosk 想要=图形.目标 之后=图形.目标 [服务] 环境=显示=:0.0 环境=XAUTHORITY=/home/pi/.Xauthority 类型=简单 ExecStart=/bin/bash /home/pi/kiosk.sh 重新启动=中止时 用户=pi 组=pi [安装] WantedBy=graphical.target
这一切都很好,但是我唯一的问题是尝试添加一些内容以使我的此页面的登录详细信息自动打开。有什么建议吗?我尝试研究 cURL 但不知道它。有时我会收到 SSL 错误,我认为这是因为内部网页没有安全证书。感谢任何人花时间阅读本文。
答案1
除了处理用户交互的用户代理之外,使用任何用户代理都很难做到这一点;您遇到了从执行身份验证的用户代理中提取 cookie 并将其注入 Chromium 的问题。
我可以看到两种可能的解决方案。
使用铬驱动程序最初通过脚本控制浏览器,通过 DOM 注入凭据
将浏览器配置为使用代理并通过 MITM 代理上的连接来建立会话
但在浏览器上配置客户端证书并重写应用程序以接受使用客户端证书的身份验证可能更容易。
答案2
所以我最终设法让它发挥作用。我运行了“Chromium-browser”,我的密码使用 xdotool 输入脚本,但是我使用 & 同时运行它们,并将我的 xdotool 移动到不同的脚本,现在它对我有用。
chromium-browser --noerrdiaglogs --disable-infobars --kiosk https://192.168.0.1/webconsole & /bin/bash /home/pi/test.sh
Test.sh 包含:
#!bin/bash xdotool search --onlyvisible --class "chromium" 窗口焦点键 Tab xdotool 键 Tab xdotool 输入密码 xdotool 键 返回 睡眠9999999小时
添加睡眠命令是因为当该脚本完成时,它基本上结束了整个任务。感谢大家的建议和时间! :)