C++与Selenium WebDriver:从安装到第一个测试用例
·
C++与Selenium WebDriver:从安装到第一个测试用例
1. 环境准备
所需组件:
- C++编译器(如GCC或MSVC)
- Selenium WebDriver(浏览器驱动)
- Selenium C++客户端库
安装步骤:
-
安装浏览器驱动(以Chrome为例):
- 下载与浏览器版本匹配的ChromeDriver
- 解压后将
chromedriver放入系统PATH路径
-
安装C++客户端库:
- 使用vcpkg包管理器:
vcpkg install selenium-cpp - 或手动编译:selenium-cpp源码
- 使用vcpkg包管理器:
2. 创建测试项目
CMake配置示例:
cmake_minimum_required(VERSION 3.10)
project(selenium_test)
find_package(selenium-cpp REQUIRED)
add_executable(test_case main.cpp)
target_link_libraries(test_case PRIVATE selenium-cpp)
3. 第一个测试用例
#include <selenium/webdriver.h>
#include <selenium/chrome.h>
using namespace selenium;
int main() {
// 1. 创建Chrome驱动
ChromeDriver driver;
// 2. 打开百度首页
driver.get("https://www.baidu.com");
// 3. 定位搜索框并输入关键词
WebElement search_box = driver.find_element(By::name("wd"));
search_box.send_keys("Selenium C++");
// 4. 提交搜索
search_box.submit();
// 5. 等待结果加载(显式等待)
driver.wait(Until::title_contains("Selenium C++"), 5000);
// 6. 验证结果
if(driver.get_title().find("Selenium C++") != std::string::npos) {
std::cout << "测试通过!" << std::endl;
}
// 7. 关闭浏览器
driver.quit();
return 0;
}
4. 关键组件说明
- WebDriver:浏览器控制器接口
- By定位器:
By::id("element_id")By::css_selector(".class")By::xpath("//div")
- 等待机制:
driver.wait(Until::element_visible(By::id("result")), 3000);
5. 常见问题解决
| 问题现象 | 解决方案 |
|---|---|
| 驱动未找到 | 检查PATH是否包含驱动路径 |
| 浏览器版本不匹配 | 更新浏览器或下载对应版本驱动 |
| 元素定位失败 | 使用开发者工具验证定位表达式 |
6. 进阶技巧
- 多浏览器支持:
FirefoxDriver ff_driver; EdgeDriver edge_driver; - 页面对象模式:
class SearchPage { public: WebElement search_box; SearchPage(WebDriver& drv) : search_box(drv.find_element(By::name("wd"))) {} };
执行流程:
编译运行后,将自动打开浏览器 → 执行搜索操作 → 验证结果 → 输出测试报告
此方案适用于Windows/Linux/macOS平台,可根据实际需求调整定位策略和等待条件。
更多推荐
所有评论(0)