来自C++的Web自动化
Web automation from C++
我们需要从C++应用程序进行一些相当复杂的web自动化(登录到应用程序,执行一些操作,注销),但性能确实很重要,所以我们正在考虑各种选项。
-
有没有一种方法可以直接从C++驱动WebKit或其他无头引擎,而不需要在它们之间多加几层(如selenium+webdriver+网络通信+…)?也许是彩色打印机?
-
如果选项1不可行,从C++运行WebDriver(使用真实浏览器)的最佳方式是什么?
您可以使用selenium服务器和JsonWireProtocol。在C++中,您可以实现对selenium服务器的CURL请求,并使用C++实现web自动化。
首先使用此链接:我的Webdriver++分支。
还有一些C++库可以完成这项工作。第一个是sekogan的Webdriver++,但上一次提交是在3年前,现在似乎并不是所有的东西都有效。第二个是我的Webdriver++分支,我已经修复了一些错误,并将这个项目作为共享库,所以你可以在任何C++项目中使用它。
这是一个如何使用我的Webdriver++的my fork的示例。
#include <webdriverxx/webdriverxx.h>
using namespace webdriverxx;
int main() {
WebDriver firefox = Start(Firefox());
firefox
.Navigate("http://google.com")
.FindElement(ByClass("class_name"))
.SendKeys("Hello, world!")
.Submit();
return 0;
}
您应该研究PhantomJS(一种无头WebKit浏览器),它附带了GhostDriver,这是PhantomJS的WebDriver协议实现。
您仍然需要使用其中一个WebDriver语言绑定,我不知道C++中有任何语言绑定,但您的团队可能会将其中一种可用语言用于自动化目的。
最糟糕的情况是,您可以始终使用Python创建WebDriver脚本,并从C++应用程序中调用Python脚本。
相关文章:
- 用于将C++代码转换为 Web 程序集的脚本未终止
- C# DLL 从C++应用程序调用 SOAP Web 服务
- Qt QML桌面应用程序自动化测试
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- 用于 progmem 的C++和头文件压缩的 Web 文件字节数组
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 使用 ESP8266/8285 将字符串从 Web 服务器转换为字节数组
- 在 c++ WWSAPI Web 服务中处理 WS-Security PasswordDigest 模式
- libtorrent是否支持带摘要身份验证的http web种子
- 我的web应用程序的用户需要在浏览器上手动启用本机客户端吗
- 根据应用程序是否已自动化显示不同的 QML 文件
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- COM 自动化结构与它们的包装器
- 如何捕获从 MFC Web 浏览器 c++ 发出的 GET/POST 请求
- 将 OLE 自动化日期 (OADate) 双精度转换为结构 tm,而不使用 VariantTime到SystemTime
- 在能够从 Web 浏览器访问大型数组数据的同时存储它的最可行方法是什么?
- 如何结束在 COM 自动化期间执行的进程
- Web浏览器挂钩和自动化
- 来自C++的Web自动化
- 如何自动化弹出模态HTML对话框的IE web应用