C# Selenium.WebDriver系列 (一)
文章目录
一、Selenium.WebDriver是什么
WebDriver 以本地化方式驱动浏览器,就像用户在本地或使用 Selenium 服务器的远程机器上所做的那样,这标志着浏览器自动化的飞跃。
Selenium WebDriver 指的是语言绑定和各个浏览器控制代码的实现。 这通常被称为 WebDriver。
Selenium WebDriver 是 W3C 推荐标准。
- WebDriver 被设计成一个简单和简洁的编程接口。
- WebDriver 是一个简洁的面向对象 API。
- 它能有效地驱动浏览器。
接下来使用 C# Selenium WebDriver Chrome 进行演示
二、C# Selenium.WebDriver可以用来做什么
Selenium WebDriver的核心原理是通过向浏览器发送命令和脚本,模拟真实用户的操作行为,从而实现对Web应用程序的自动化测试.
正常用户在网页上看到的内容,通过Selenium WebDriver都可以模拟人的操作发送消息,读取信息,基于此特性,可以用来做以下场景:
-
爬虫
只要是正常用户可以看到的内容或点击的按钮,都可以通过 Selenium WebDriver 进行操作,这样就可以根据需求,通过程序获取并输出到文件中进行爬取 -
自动化测试
软件测试人员可以根据测试需求,编写自动化测试程序 -
工业产品生产自动化测试
对于某些电子产品,机器内部支持网页进行控制与信息读取,在生产中可以根据测试项按照流程模拟操作人员操作,编写自动化程序.
三、使用步骤
1.引入库 使用NuGet引入
注意:webdriver版本需要和当前浏览器主版本一致。
2.基础演示(以百度为例,自动输入 hello world并搜索)
函数示例:
static void BaiduTest()
{
// 设置 Chrome 浏览器的路径
var chromeOptions = new ChromeOptions();
chromeOptions.BinaryLocation = "C:\\Chrome119-bin32\\chrome.exe"; //指定Selenium启动的路径
//chromeOptions.AddArgument("--headless");
// 创建 ChromeDriver 对象并指定 ChromeOptions
IWebDriver driver = new ChromeDriver(chromeOptions);
//https://www.baidu.com/
// 导航到指定 URL
driver.Navigate().GoToUrl("https://www.baidu.com/");
// 执行相关操作
IWebElement element = driver.FindElement(By.Id("kw"));
string v1 = element.GetAttribute("value");
Console.WriteLine("查询输入的内容:"+v1);
element.SendKeys("hello world"); //输入 hello world
string v2 = element.GetAttribute("value");
Console.WriteLine("再次查询输入的内容:" + v2);
string v3 = driver.FindElement(By.Id("su")).GetAttribute("value");
driver.FindElement(By.Id("su")).Click(); //点击 百度一下
Console.WriteLine("查询按钮的文字内容:" + v3);
// 关闭浏览器
driver.Quit();
}
程序启动截图:
代码中 kw是怎么来的呢
在浏览器中 按F12,点击按钮,将鼠标移到指定位置,可以看到输入框的id是 kw
IWebElement element = driver.FindElement(By.Id("kw"));
百度一下按钮同理
driver.FindElement(By.Id("su"));
总结
文章演示了C# Selenium.WebDriver 以谷歌浏览器,自动化的输入 hello world 并点击 百度一下.
下一文章会介绍爬虫的案例