Selenium是当前最流行的Web UI自动化 测试框架,熟悉Selenium的人也知道,Selenium是基于WebDriver。那么能不能不用Selenium,直接调用WebDriver来实现Web UI自动化呢?答案当然是可以的,本文就带你来实现基于WebDriver的Web U自动化。本文通过调用Selenium、Curl命令、直接调用ChromeDriver三种方式,实现了同样的功能。编程语言为C#,已在Visual Studio 2019测试通过,其他主流编程语言也可以完成同样功能。对比三种实现方式,大家就可以容易的理解如何不用Selenium而直接调用WebDriver完成Web U自动化。阅读以下内容前,需要有Selenium和WebDriver相关基础知识。
手动步骤
1.打开Chrome浏览器
3.搜索框输入“Selenium”
4.点击“百度一下”
5.关闭Chrome浏览器
调用Selenium的C#代码
- using OpenQA.Selenium;
- using OpenQA.Selenium.Chrome;
- namespace HelloSelenium
- {
- class Program
- {
- static void Main(string[] args)
- {
- IWebDriver driver = null;
- try
- {
- //1. 打开Chrome浏览器
- driver = new ChromeDriver();
- //2. 进入https://www.baidu.com/主页
- driver.Navigate().GoToUrl("https://www.baidu.com/");
- //3. 搜索框输入“Selenium”
- driver.FindElement(By.Id("kw")).SendKeys("Selenium");
- //4. 点击“百度一下”
- driver.FindElement(By.Id("su")).Click();
- }
- finally
- {
- //5. 关闭Chrome浏览器
- if (driver != null)
- {
- driver.Dispose();
- }
- }
- }
- }
- }
复制代码
Curl命令
1.打开Chrome浏览器
启动命令提示符,执行chromedriver.exe --port=9515 (注意选用与Chrome版本对应的chromedriver版本,端口只要未被占用即可)。
- Curl命令
- 1.打开Chrome浏览器
- 启动命令提示符,执行chromedriver.exe --port=9515 (注意选用与Chrome版本对应的chromedriver版本,端口只要未被占用即可)。
复制代码
另起一个命令提示符,执行curl命令(注意端口号),记住返回的sessionId。
curl -d @JsonFile1.json http://localhost:9515/session
JsonFile1.json内容:
{
"desiredCapabilities": {
"caps": {
"nativeEvents": false,
"browserName": "chrome",
"version": "",
"platform": "ANY"
}
}
} - curl -d @JsonFile2.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/url
- JsonFile2.json内容:
- {"url":"https://www.baidu.com/"}
复制代码- 获取elementId:
- curl -d @JsonFile3.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element
- JsonFile3.json内容:{"using":"css selector","value":"#kw"}
复制代码
输入“Selenium”:
curl -d @JsonFile4.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element/0.7861531328870939-1/value
JsonFile4.json内容:{"value":["Selenium"]}
4.点击“百度一下”
获取elementId:
curl -d @JsonFile5.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element
JsonFile5.json内容:
{"using":"css selector","value":"#su"}
点击:
curl -d @JsonFile4.json curl -d @JsonFile6.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element/0.7861531328870939-2/click
JsonFile6.json内容:
{}
5.关闭Chrome浏览器
关闭Chrome:
关闭Chrome
curl -X DELETE http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318
关闭chromedriver.exe:
curl http://localhost:9515/shutdown
调用ChromeDriver的C#代码
|