Selenium 简明教程

Selenium with C

Selenium 可以与多种语言一起使用,如 Java、Python、JavaScript、Ruby、C# 等。Selenium 被广泛用于 Web 自动化测试。Selenium 是一种开放源代码、可移植的自动软件测试工具,用于测试 Web 应用程序。

它具有跨不同浏览器和操作系统工作的功能。Selenium 不仅是一个单一的工具,而且是一组工具,帮助测试人员更有效地自动化基于 Web 的应用程序。C# 是 Selenium 的另一种语言绑定。

Selenium 中的 Java 和 C# 语言绑定没有太大差异。主要区别仅在于语言。此外,这两种语言的变更日志也有所不同。

在 Java 中,我们说使用 Webdriver,WebElement,但在 C# 中,我们称之为 IWebdriver,IWebElement。因此,在 C# 中遵循的约定是,在声明接口时,在接口名称之前添加字母“I”。

在 Java 中使用 Page Factory 时,使用 @FindBy 注释标识元素,但是,在 C# 中使用 Page Factory 时,它称为属性并表示为 [FindBy] 用于查找元素。

Setup Selenium with C

Step 1 − 从链接中安装名为 Visual Studio 的 C# 代码编辑器 − https://visualstudio.microsoft.com/downloads/

使用此编辑器,我们可以开始处理 C# 项目以启动我们的测试自动化。

要更详细地了解如何设置 Visual Studio,请参阅链接 − https://www.tutorialspoint.com/ebook/

Step 2 − 创建一个新项目,方法是右键单击现有项目,然后单击“添加”选项,然后单击“新建项目”,或者如果没有打开任何项目,则单击“文件”菜单,然后选择“新建项目”选项。

selenium csharp tutorial 1

Step 3 − 选择“控制台应用程序”选项,然后单击“下一步”按钮。

selenium csharp tutorial 2

Step 4 − 输入项目名称,比如 SeleniumTest,然后点击创建按钮。

selenium csharp tutorial 3

Step 5 − 新建立的项目 - SeleniumTest 应该会可见。

selenium csharp tutorial 4

Step 6 − 右键点击新建立的项目,选择选项“管理 NuGet 包”。

selenium csharp tutorial 5

Step 7 − 在右上角的搜索框中输入 selenium,便会显示所有基于 selenium 搜索的包。点击 Selenium.WebDriver 并点击“添加包”按钮。安装所有与 Selenium 相关的包。

selenium csharp tutorial 6

Step 8 − 完成后,Selenium.Webdriver 成功添加一条消息,消息会显示在 Visual Studio 的顶部。

selenium csharp tutorial 7

Step 9 − 重启 Visual Studio。重新启动后,该解决方案资源管理器中的 NuGet 文件夹中应该会显示所有已安装的包。

selenium csharp tutorial 8

Step 10 − 编写一段代码以获得页面标题 - Selenium Practice - Modal Dialogs 的下述页面。

selenium csharp tutorial 9

Example

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SeleniumTest {
   class Program {
      static void Main(string[] args) {

         // Initiate Webdriver
         IWebDriver driver = new ChromeDriver();

         // adding an implicit wait of 20 secs
         driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

         // launch the application
         driver.Navigate().GoToUrl("https://www.tutorialspoint.com/selenium/practice/modal-dialogs.php");

         // get the page title
         String pageTitle = driver.Title;
         Console.WriteLine("Page title is: " + pageTitle);
      }
   }
}
Page title is: Selenium Practice - Modal Dialogs

在上例中,我们启动了一个应用程序并用消息 - Page title is: Selenium Practice - Modal Dialogs 在控制台中获取了其页面标题。

Launch Browser and Quit Driver with Selenium C

我们可以使用 driver.Navigate().GoToUrl 方法启动浏览器并打开应用程序,最后使用 Quit() 方法退出浏览器。

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SeleniumTest {
   class Program {
      static void Main(string[] args){

         // Initiate Webdriver
         IWebDriver driver = new ChromeDriver();

         // adding an implicit wait of 20 secs
         driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

         // launch the application
         driver.Navigate().GoToUrl("https://www.tutorialspoint.com/selenium/practice/check-box.php");

         // quitting browser
         driver.Quit();
      }
   }
}

在上例中,我们首先在 Chrome 浏览器中启动了一个应用程序,然后退出浏览器。

Identify Element and Check Its Functionality Using Selenium C

一旦我们导航到某个网页,我们必须与该页面中可用的 web 元素进行交互,比如点击链接/按钮、在编辑框中输入文本等,以完成我们的自动化测试用例。

为此,我们的首要工作是标识该元素。为此,Selenium 中有一些可用的定位符,它们分别是 id、class、classname、name、linktext、partiallinktext、tagname、css 和 xpath。这些定位符需要与 FindElement() 方法一起使用。

比如,driver.FindElement(By.Id("id")) 将定位给定 id 属性值的第一个 web 元素。如果没有任何元素具有匹配的 id 属性值,则应该抛出 NoSuchElementException。

我们来看看在下方图像中高亮显示的 Impressive 标签旁边的单选按钮的 html 代码 −

selenium csharp tutorial 10
<input class="form-check-input" type="radio" name="tab"
   value="igotthree" onclick="show3();">

让我们点击该单选按钮,然后便会在网页上看到文本 You have checked Impressive

selenium csharp tutorial 11

Example

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SeleniumTest {
   class Program {
      static void Main(string[] args){

         // Initiate the Webdriver
         IWebDriver driver = new ChromeDriver();

         // adding an implicit wait of 20 secs
         driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

         // launch an application
         driver.Navigate().GoToUrl("https://www.tutorialspoint.com/selenium/practice/radio-button.php");

         // identify a radio button then click on radio button
         IWebElement r = driver.FindElement
            (By.XPath("/html/body/main/div/div/div[2]/form/div[3]/input"));
         r.Click();

         // identify text after clicking radio button
         IWebElement txt = driver.FindElement(By.Id("check1"));

         // obtain text
         String text = txt.Text;
         Console.WriteLine("Text is: " + text);

         // quitting browser
         driver.Quit();
      }
   }
}
Text is: You have checked Impressive

在上例中,我们在点击 Impressive 标签旁边的单选按钮后获得了文本,消息显示在控制台中 - You have checked Impressive

这总结了我们对 Selenium 教程 - C# 教程的全面讲解。我们从描述如何使用 C# 设置 Selenium 并启动浏览器开始,以及如何使用 Selenium C# 标识元素并检查其功能。

这使你掌握了 Selenium - C# 教程的深度知识。明智的做法是不断练习你学到的知识并探索与 Selenium 相关的其它知识,以加深你的理解并拓展你的视野。