Selenium教程

Selenium C#教程

在本节中,我们将学习如何在Visual Studio和NUnit Framework的帮助下以C#编程语言创建Selenium测试脚本。
教程中,我们将学习以下主题:
什么是Selenium? 什么是C#? 为什么C#对自动化测试有用? Selenium与C# 在C#中使用Visual Studio配置Selenium 在Visual Studio中使用NUnit配置Selenium

什么是Selenium?

Selenium是最重要的自动化测试工具之一,因为它支持多种编程语言,例如 Java,Python, C#,Ruby,Perl和PHP,等。
并在 Google Chrome,Firefox,Safari,Internet Explorer和Opera 等各种浏览器中自动化测试脚本>在不同的操作系统(例如 Windows,Mac,Linux )上。
Selenium支持其他测试工具(例如TestNG和JUnit)来管理测试用例并生成测试报告。
有关Selenium的更多详细信息,请参见以下链接:
https: //www .lidihuo.com/selenium-tutorial

什么是C#?

C#是一种面向对象的编程语言,在 .Net框架上运行,其发音为 C-sharp 。
C#语言被开发为取消 CLR (代表 Common Language Runtime )。
在C#中,我们可以借助功能将程序分为几部分;这就是为什么它也被称为结构化编程语言的原因。
有关C#语言的更多详细信息,请参见下面的链接:
https://www.lidihuo.com/c-sharp-tutorial

C#为什么对自动化测试有用?

C#对自动化测试很有用,因为它允许自动化测试工程师在.Net框架上的 Visual Studio 的帮助下开发应用程序。 C#是另一种编程语言,也支持与Selenium的绑定。 该语言绑定将与java程序一起更新。 C#IDE是 Visual Studio ,与Java的Eclipse相比,它提供了更快的开发和调试体验。 C#具有很多内置函数,可加快开发速度。

使用C#的Selenium

在本节中,我们将了解如何下载,安装 Visual Studio 和在Visual Studio,NUnit Framework中配置Selenium,并使用C#编程语言在Visual Studio中执行测试脚本。
要在C#中使用Selenium,请执行以下过程:
在C#中使用Visual Studio配置Selenium 在Visual Studio中使用NUnit配置Selenium

在C#中使用Visual Studio配置Selenium

以下是在C#中使用Visual Studio配置Selenium的过程:
下载并安装C#IDE(Visual Studio) 在Visual Studio中创建一个新项目 在Visual Studio中添加引用 使用C#编写Selenium测试脚本 在Visual Studio中运行Selenium测试脚本

下载并安装Visual Studio

Visual Studio 是C# IDE [集成开发环境],用于在 Windows,Mac 等各种平台上开发应用程序。
此处,我们正在下载并安装用于 Windows 平台的Visual Studio。

下载Visual Studio

要下载适用于Windows平台的Visual Studio的最新版本,请参见以下链接: https://visualStudio.microsoft.com/downloads/
点击上面的链接后,在下载部分中,我们将点击社区区域下的免费下载按钮,我们可以在下面的屏幕截图中看到: 带有C#教程的Selenium 点击"免费下载"按钮后,它将下载Visual Studio的 exe 文件。 然后,打开下载的 exe 文件,如下面的屏幕截图所示: 带有C#教程的Selenium

安装Visual Studio

在为 Windows 平台下载了Visual Studio之后,我们将准备安装它。
要安装Visual Studio,请按照以下过程操作:
双击下载的可执行文件后, Visual Studio安装程序窗口将出现在屏幕上,我们单击继续按钮以进行进一步处理。我们可以在下面的屏幕截图中看到: 带有C#教程的Selenium 点击继续按钮后,它将开始为Visual Studio安装文件。 带有C#教程的Selenium 完成此过程后,安装-visual Studio-community 2019-16.4.3 窗口将出现在屏幕上,我们选择 Universal Windows Platform开发和 <台式机和移动设备部分下的strong> .Net桌面开发选项。 然后点击安装按钮,如下图所示: 带有C#教程的Selenium 由于文件大小很大,因此安装过程将花费一些时间,如下面的屏幕截图所示: 带有C#教程的Selenium 安装过程完成后,我们将在启动Visual Studio之前单击重新启动按钮。 带有C#教程的Selenium 系统重新启动(重新启动)后,我们将在"开始"菜单上搜索" Visual Studio 2019 ",然后双击它。 以下弹出窗口将出现在屏幕上,如果我们没有帐户,我们将点击现在不行,也许以后再行,如下面的屏幕截图所示: 带有C#教程的Selenium 在下一个窗口中,我们可以为Visual Studio选择主题。 选择Visual Studio的主题后,单击启动Visual Studio 按钮,如下图所示: 带有C#教程的Selenium 然后我们获得了Visual Studio的入门窗口。 带有C#教程的Selenium

创建新项目

安装完成后,我们准备在Visual Studio上创建新项目。
要在Visual Studio上创建项目Studio,请按照以下过程操作:
右键单击文件菜单,转到新建,然后在给定的弹出菜单中选择项目选项,如我们所见在以下屏幕截图中: 带有C#教程的Selenium 屏幕上会出现 创建新项目窗口,我们将在所有语言下拉菜单中选择 C#语言。 然后,从所有平台下拉列表中选择 Windows 平台选项。 然后搜索 .net Fram电子商务模板在搜索字段中,然后从中选择 Console App(.NET Framework)。 然后,点击下一步按钮,如下图所示: 带有C#教程的Selenium 点击下一步按钮后,配置新项目窗口将出现在屏幕上,我们将在其中提供我们的项目名称[SeleniumTest] ,然后点击我们在下面的屏幕截图中可以看到 Create 按钮: 带有C#教程的Selenium 成功创建项目后,屏幕上将出现以下窗口: 带有C#教程的Selenium

在Visual Studio中添加引用

一旦创建了项目,我们将添加 Selenium WebDriver 和 Chrome驱动程序的引用借助于Visual Studio中的 NuGet程序包管理器。

添加Selenium WebDriver引用

按照以下过程进行操作,在Visual Studio中添加Selenium WebDriver的引用:
在解决方案资源管理器中,右键单击参考,然后在给定的弹出菜单中选择管理NuGet软件包选项。可以在下面的屏幕截图中看到: 带有C#教程的Selenium 管理NuGet软件包窗口将打开,我们将在其中搜索 Selenium 并选择 WebDriver ,然后单击 Install 按钮,如下图所示: 带有C#教程的Selenium 然后,在预览更改窗口中单击确定按钮,如下图所示: 带有C#教程的Selenium 成功安装软件包后,它将显示以下输出消息。 带有C#教程的Selenium

添加Chrome驱动程序引用

请按照以下过程在Visual Studio中将引用添加到 Chrome驱动程序:
要在chrome浏览器上执行操作,我们将再次右键单击参考,然后从弹出菜单中选择管理NuGet软件包选项。 然后在搜索字段中搜索 chrome驱动程序,然后选择 Chrome.WebDriver ,然后点击 Install 按钮,如我们在下图: 带有C#教程的Selenium 然后,点击预览更改窗口中的确定按钮以进行进一步处理。 带有C#教程的Selenium 在Visual Studio中添加Selenium WebDriver和Chrome驱动程序引用后,我们准备使用C#编程语言编写测试脚本。

使用C#编写Selenium测试脚本

要使用C#编程语言编写Selenium测试脚本,请执行以下步骤:
步骤 动作 输入 预期结果
1、 为浏览器创建参考 应该创建浏览器的引用。
2、 导航到 Google主页。 https://www.google.com/ 必须显示Google主页。
3、 识别 Google搜索文本框并传递值。 lidihuo教程 应该识别Google搜索框,然后输入值。
4、 识别并单击 Google搜索按钮。 应该识别并单击Google搜索按钮。
5、 关闭浏览器。 浏览器应该关闭。
我们正在逐步创建测试脚本,以使您详细了解每个组件。
Step1
要为浏览器创建参考,我们将遵循以下过程:
注意: 要声明接口: 在接口名称之前添加前缀" I"。就像在下表中可以看到的那样,在C#中,我们在接口(IWebDriver)之前放置" I",而在Java中,则不需要在接口(WebDriver)名称之前放置" I"。
C# Java
IWebDriver WebDriver
IWebElement WebElement
这里是示例代码:
IWebDriver driver = new ChromeDriver();
在编写以上代码时,我们遇到以下错误: Selenium with C#教程 为克服此错误,我们将使用以下语句,这有助于我们添加Selenium参考。
using OpenQA.Selenium;
在添加chrome驱动程序的引用时,会出现以下错误: Selenium with C#教程 要解决此错误,我们将在代码中使用以下语句。
using OpenQA.Selenium.Chrome;
Step2
在此步骤中,我们将导航 https://www.google.com/浏览器中的URL。
示例代码如下:
driver.Navigate().GoToUrl("https://www.google.com/");
注意: GoToUrl()方法用于浏览URL。
Step3
要识别Google搜索框,请执行以下过程:
在这一步中,我们正在尝试通过其 Name 属性找到 Google搜索文本框。
右键单击 Google搜索文本框,然后在弹出菜单中选择检查选项,如下图所示: 带有C#教程的Selenium 将使用开发 Google搜索文本框时使用的所有特定代码启动开发人员工具窗口,在该文本框中,我们将复制其 Name 属性的值,是" q "。 带有C#教程的Selenium 示例代码如下:
IWebElement ele = driver.FindElement(By.Name("q"));
Step4
在此步骤中,我们将值传递到Google搜索框中。
这里是示例代码:
ele.SendKeys("lidihuo tutorials");</p>
Step5
要识别Google搜索按钮,请执行以下过程:
右键单击 Google搜索按钮,然后从给定的弹出菜单中选择检查选项,如下图所示: Selenium with C#教程 将打开开发人员工具窗口,其中包含在开发 Google搜索按钮时使用的所有特定代码。 然后,复制其 name 属性的值" btnK ",如我们在下图: Selenium with C#教程 并且,示例代码如下:
IWebElement ele1 = driver.FindElement(By.Name("btnK"));
//click on the search button
ele1.Click();
Step6
在最后一步,我们将在完成对浏览器执行的所有操作后关闭浏览器。
此处示例代码:
driver.Close();
完成所有测试方案后,我们的最终测试脚本将如下所示。
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace SeleniumTest
{
class Program
{
static void Main(string[] args)
{
Console.Write("test case started ");
//create the reference for the browser
IWebDriver driver = new ChromeDriver();
// navigate to URL
driver.Navigate().GoToUrl("https://www.google.com/");
Thread.Sleep(2000);
// identify the Google search text box
IWebElement ele = driver.FindElement(By.Name("q"));
//enter the value in the google search text box
ele.SendKeys("lidihuo tutorials");
Thread.Sleep(2000);
//identify the google search button
IWebElement ele1 = driver.FindElement(By.Name("btnK"));
// click on the Google search button
ele1.Click();
Thread.Sleep(3000);
//close the browser
driver.Close();
Console.Write("test case ended ");
}
}
}

运行测试脚本

完成编写Selenium测试脚本后,我们将运行测试脚本。
请按照以下过程进行,运行测试脚本:
单击开始按钮以执行程序 cs 文件,如下图所示: 带有C#教程的Selenium 单击开始按钮后,将开始执行过程,如下图所示: 带有C#教程的Selenium 上述测试脚本将启动Google Chrome浏览器并自动执行所有测试方案。 带有C#教程的Selenium

在Visual Studio中使用NUnit配置Selenium

在借助NUnit编写测试脚本之前,我们将了解 NUnit Framework 在Visual Studio中下载,安装NUnit Framework
什么是NUnit Framework? 下载NUnit3测试适配器 为NUnit添加参考 创建NUnit类 使用NUnit编写Selenium测试脚本 执行测试脚本

什么是NUnit框架?

NUnit 是针对所有的单元测试框架。网络语言。它是开源软件,经过完全重新设计,可以利用.Net语言的许多新功能。
它还支持广泛的.Net语言平台。

下载NUnit3测试适配器

NUnit3测试适配器是一个扩展,允许我们在Visual Studio中运行NUnit测试。
要在Visual Studio中下载NUnit3测试适配器,请按照以下步骤操作:
首先,转到扩展,然后在Visual Studio中选择管理扩展选项。 带有C#教程的Selenium 管理扩展窗口将出现在屏幕上,我们将在其中搜索 NUnit ,然后单击下载按钮以获取NUnit 3测试适配器,如下面的屏幕截图所示: 带有C#教程的Selenium 单击"下载"按钮后,它将要求我们关闭Visual Studio以修改,然后单击"修改"按钮,如下面的屏幕截图所示: 带有C#教程的Selenium 单击"修改"按钮后,它将开始安装和修改NUnit 3测试适配器。 所有修改完成后,我们得到以下窗口: 带有C#教程的Selenium 正如我们在" Manage Extensions"窗口中看到的那样,已成功安装 NUnit 3测试适配器。 带有C#教程的Selenium 完成NUnit 3测试适配器的安装过程后,我们将添加NUnit的引用。

添加NUnit的引用

要添加NUnit的引用,请执行以下过程:
在 Solution Explorer 中的参考上单击鼠标右键,然后在给定的弹出菜单中选择 Manage NuGet Packages 管理选项。 带有C#教程的Selenium 在管理NuGet软件包窗口中,我们将在搜索字段中搜索 NUnit ,然后选择第一个选项为 NUnit,点击安装按钮,如下面的屏幕截图所示: 带有C#教程的Selenium 点击安装按钮后,预览更改窗口将出现在我们点击确定 带有C#教程的Selenium 成功安装软件包后,我们将获得以下输出消息。 带有C#教程的Selenium

创建NUnit类

要在Visual Studio中创建NUnit类,请执行以下过程:
右键单击 SeleniumTest 项目,然后转到添加,然后从给定的弹出菜单中选择 Class 选项。 带有C#教程的Selenium 添加新项窗口将出现在屏幕上,我们将在其中提供类名作为 Sample1 ,然后单击添加按钮,如下面的屏幕截图所示: 带有C#教程的Selenium 点击添加按钮后,屏幕上将出现以下窗口: 带有C#教程的Selenium 成功创建类之后,我们准备使用NUnit编写测试脚本。

使用NUnit编写Selenium测试脚本

要使用NUnit编写Selenium测试脚本,请执行以下过程:
出于我们的测试目的,我们将在Facebook应用程序上执行登录。
步骤 动作 输入 预期结果
1、 打开Goog​​le Chrome浏览器。 应打开Goog​​le Chrome浏览器。
2、 导航到Facebook登录页面。 https://www.facebook.com 必须显示Facebook登录页面。
3、 识别用户名文本框并传递值。 用户名=xyz11@gmail.com 应标识用户名文本框,并输入值。
4、 标识密码文本框并传递值。 密码= ####### 应该标识"密码"文本框,然后输入值。
5、 识别登录按钮,然后单击它。 应该识别并单击"登录"按钮。
6、 关闭浏览器。 浏览器应该关闭。
我们正在逐步创建测试脚本,以使您全面了解如何借助Visual Studio中的NUnit框架编写测试脚本。
步骤1
要访问Google Chrome浏览器,我们将创建 IWebDriver 作为全局变量。
以下是示例代码:
注意: 全局变量是在程序中所有函数都可以访问的任何函数之外声明的。
在NUnit测试方法的帮助下,使用NUnit编写代码时,我们会将代码分为不同的部分:
对于打开浏览器: 初始化 执行浏览器操作: ExecuteTest 关闭浏览器: EndTest
The syntax for the NUnit test method:
public void MethodName()
示例:
public void Initialize()
{
//open the browser
}
public void ExecuteTest()
{
//perform browser operations
}
public void EndTest()
{
//close the browser
}
Step2
下一步,我们将使用 Initialize()方法导航到给定的URL。
这里是示例代码:
public void Initialize()
{
//navigate to URL
driver.Navigate().GoToUrl("https://www.facebook.com/");
//Maximize the browser window
driver.Manage().Window.Maximize();
Thread.Sleep(2000);
}
Step3
在此步骤中,我们将在 Facebook 登录页面下找到用户名文本框 ExecuteTest()方法。
请遵循以下过程:
右键单击用户名文本框,然后单击 Inspect 元素,如下图所示: 带有C#教程的Selenium 将打开包含所有特定代码的开发人员工具窗口,这些代码用于用户名文本框的开发中。 带有C#教程的Selenium 将其 id 属性的值复制为" 电子邮件",并将其粘贴到代码中。
这里是示例代码:
public void ExecuteTest()
{
//identify the username text box
IWebElement ele = driver.FindElement(By.Id("email"));
//enter the username value
ele.SendKeys("xyz11@gmail.com");
Thread.Sleep(2000);
Console.Write("username value is entered \n");
Step4
此后,我们将识别Facebook登录页面的密码文本框,因此请执行以下过程:
右键单击密码文本框,然后单击弹出菜单中的检查元素选项,如下图所示: 带有C#教程的Selenium 它将启动一个包含所有特定代码的开发人员工具窗口,这些代码用于开发密码文本框。 带有C#教程的Selenium 将其 name 属性的值复制为" pass ",并将其粘贴到代码中。
这里是示例代码:
//identify the password text box
IWebElement ele1 = driver.FindElement(By.Name("pass"));
//enter the password value
ele1.SendKeys("########");
Console.Write("password is entered");
Step5
一旦我们确定了用户名或密码文本框,我们将找到登录按钮并执行点击操作。
右键单击登录按钮,然后从给定的弹出菜单中选择检查选项,如下图所示: 带有C#教程的Selenium 将启动具有所有特定代码的开发人员工具窗口,这些代码用于开发登录按钮,如下面的屏幕截图所示: 带有C#教程的Selenium 复制其 Id 属性" u_0_b "的值并将其粘贴到代码中。
这里是示例代码:
//click on the Log in button
IWebElement ele2 = driver.FindElement(By.Id("u_0_b"));
ele2.Click();
Thread.Sleep(3000);
Console.Write("login button is clicked")
Step7
在测试脚本的最后一步,我们将使用 EndTest()方法关闭浏览器。
以下是关闭浏览器的示例代码:
public void EndTest()
{
//close the browser
driver.Close();    
}
将所有步骤组合在一起后,我们的脚本将如下所示:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace SeleniumTest
{
class Sample1
{
//create the reference for the browser
IWebDriver driver = new ChromeDriver();
public void Initialize()
{
//navigate to URL
driver.Navigate().GoToUrl("https://www.facebook.com/");
//Maximize the browser window
driver.Manage().Window.Maximize();
Thread.Sleep(2000);
}
public void ExecuteTest()
{
//identify the username text box
IWebElement ele = driver.FindElement(By.Id("email"));
//enter the username value
ele.SendKeys("xyz11@gmail.com");
Thread.Sleep(2000);
Console.Write("username value is entered");          
//identify the password text box
IWebElement ele1 = driver.FindElement(By.Name("pass"));
//enter the password value
ele1.SendKeys("########");
Console.Write("password is entered");     
//click on the Login button
IWebElement ele2 = driver.FindElement(By.Id("u_0_b"));
ele2.Click();
Thread.Sleep(3000);
Console.Write("login button is clicked");
}
public void EndTest()
{
//close the browser
driver.Close();    
}
}
}
注意: 在上面的代码中,在以下位置使用您的Facebook ID: xyz11@gmail.com和密码: ########

执行测试脚本

要运行测试脚本,请执行以下过程:
转到工具栏中的 Test ,然后选择 Test Explorer ,如下图所示: 带有C#教程的Selenium 测试浏览器窗口将出现在屏幕上,要查看所有可用的测试,我们必须构建解决方案。 带有C#教程的Selenium 要构建解决方案,请转到 Build 并从给定的弹出菜单中选择 Build Solution ,如下图所示: 带有C#教程的Selenium 完成构建解决方案后,由于未添加 NUnit属性,因此无法在测试浏览器窗口上看到"测试"。 NUnit 提供了一些内置属性,但是这里我们使用的是 SetUp,Test和TearDown 因此,我们将在代码中添加 Test 属性,如下所示:
注意: 测试属性: 用于将方法标记为可从NUnit测试运行器调用。
[Test]
public void ExecuteTest()
添加 Test属性时,会出现以下错误。 为克服此错误,我们将使用 NUnit框架的引用,如下图所示: 带有C#教程的Selenium 现在,我们进入 Test Explorer 并再次构建解决方案,然后在 Test Explorer 上获得 ExecuteTest 之后,我们将运行所选择的测试,如下图所示: 带有C#教程的Selenium 运行测试脚本后,它将能够打开浏览器,如下面的屏幕截图所示: 带有C#教程的Selenium 测试将失败,因为我们没有在代码中的任何地方调用初始化方法。 因此,我们需要通过在代码中添加另外两个名为 SetUp和TearDown 的属性来告诉NUnit Framework。 带有C#教程的Selenium
注意: SetUp: SetUp属性用于标识要立即调用的方法。每个测试运行。 TearDown: 此属性用于标识在每次测试执行后立即调用的方法。并且即使抛出异常,也保证可以调用此方法。
添加了所有三个属性后,我们的最终代码将如下所示:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using NUnit.Framework;
namespace SeleniumTest
{
class Sample1
{
//create the reference for the browser
IWebDriver driver = new ChromeDriver();
[SetUp]
public void Initialize()
{
//navigate to URL
driver.Navigate().GoToUrl("https://www.facebook.com/");
//Maximize the browser window
driver.Manage().Window.Maximize();
Thread.Sleep(2000);
}
[Test]
public void ExecuteTest()
{
//identify the username text box
IWebElement ele = driver.FindElement(By.Id("email"));
//enter the username value
ele.SendKeys("xyz11@gmail.com");
Thread.Sleep(2000);
Console.Write("username value is entered \n");          
//identify the password text box
IWebElement ele1 = driver.FindElement(By.Name("pass"));
//enter the password value
ele1.SendKeys("########");
Console.Write("password is entered \n");     
//click on the Login button
IWebElement ele2 = driver.FindElement(By.Id("u_0_b"));
ele2.Click();
Thread.Sleep(3000);
Console.Write("login button is clicked \n");
}
[TearDown]
public void EndTest()
{
//close the browser
driver.Close();    
}
}
}
之后,再次执行构建解决方案并运行所选的测试。 我们的测试在"测试资源管理器"窗口中通过,如下面的屏幕截图所示: 带有C#教程的Selenium 上面的测试脚本将启动Google Chrome浏览器并自动执行所有测试方案,如下面的屏幕截图所示: 带有C#教程的Selenium 或者,如果我们想查看输出,我们将通过单击输出链接传递一些值并查看输出。 我们可以看到在控制台上执行的所有操作的输出,如下面的屏幕截图所示: 带有C#教程的Selenium
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4