c++ - 使用 Qt/bash 脚本与 Web 浏览器交互?

标签 c++ bash qt selenium browser

我经常需要访问路由器来完成一些简单的任务:重启,打开/关闭一些选项......重复的过程真的让我很烦:(

我想编写一个批处理脚本/程序来帮我完成。

我无法使用 DD-WRT 固件刷新路由器以通过控制台访问它。政策不允许。

然后我想到了一个想法,就是用Qt写一个小程序来和浏览器交互。访问路由器IP,填写密码,浏览到选项页面...

但是,据我所知,我只能使用像 selenium 这样的 Web 驱动程序来做这样的事情,而 Qt 无法使用它。

那么有什么解决办法吗?我非常喜欢使用 Qt 或脚本来解决问题的想法。

任何想法表示赞赏:)

最佳答案

可以只发送表单响应而不加载 QWebFrame 中的页面。您可以使用一些工具(firebug、wireshark)在您单击“保存”时捕获请求/响应,并了解每次您需要此配置时发送到路由器的内容。 这将是简单的 HTTP GET 或 POST 请求。可以使用 curl、wget 或使用 QNetworkRequest 或 wethewer 的简单 QT 应用程序来完成该请求。

如果它需要除 HTTP 基本身份验证之外的其他身份验证,将会更加棘手。您将需要两个请求

  • 第一个 - 验证并保存所有 cookie
  • 第二个 - 设置参数并将所有 cookie 添加到响应

关于c++ - 使用 Qt/bash 脚本与 Web 浏览器交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25606769/

相关文章:

Bash 退出和进程替换

linux - 查找文件中字符串的数量

Qt 清除 QTextEdit/QPlainTextEdit 中的撤消历史记录吗?

c++ - 在 qt 中使用信号和槽传递参数

c++ - 多重继承 C++

c++ - 是 STL 容器 .push_back() 顽皮

C++ 将 vector 拆分为 n 个 vector 的最佳方法

python - 如何使用ctypes(C++到Python)将opencv3 cv::Mat转换为numpy数组?

linux - 如何获得linux中两个文件之间的差异(仅添加)

c++ - Qt中如何子类化?