博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2010中使用 SpecFlow + Selenium.WebDriver
阅读量:6493 次
发布时间:2019-06-24

本文共 3234 字,大约阅读时间需要 10 分钟。

安装(VS扩展、程序包)

【工具】->【扩展管理器】,安装SpecFlow

【工具】->【库程序包管理】->【程序包管理器控制台】

PM> Install-Package SpecFlow -Version 1.9.0PM> Install-Package NUnit PM> Install-Package Selenium.WebDriver PM> Install-Package Should

使用中文

# language: zh-CN

and * ,而且,并且,同时
background 背景
but * ,但是
examples 例子
feature 功能
given * ,假如,假设,假定
scenario 场景,剧本
scenarioOutline 场景大纲,剧本大纲
then * ,那么  
when * ,当

我想开始新游戏

作为破译者/我想开始新游戏.feature

作为破译者/我想开始新游戏Steps.cs

1 using OpenQA.Selenium; 2 using OpenQA.Selenium.Firefox; 3 using Should; 4 using TechTalk.SpecFlow; 5  6 namespace CodeBreakerGame.Specs.作为破译者 7 { 8     [Binding] 9     public class 我想开始新游戏Steps10     {11         private IWebDriver driver = new FirefoxDriver();12 13         [Given(@"游戏还没有开始")]14         public void 假如游戏还没有开始()15         {16             driver.Navigate().GoToUrl("http://localhost:1387/Game/Index");17         }18         19         [When(@"我开始新游戏")]20         public void 当我开始新游戏()21         {22             driver.FindElement(By.TagName("button")).Click();23         }24         25         [Then(@"我应该看到""(.*)""")]26         public void 那么我应该看到(string message)27         {28             driver.FindElement(By.TagName("div")).Text.ShouldContain(message);29         }30         31         [AfterScenario]32         public void AfterScenario()33         {34             driver.Quit();35         }36     }37 }

我想提交猜测的密码

作为破译者/我想提交猜测的密码.feature

  

作为破译者/我想提交猜测的密码Steps.feature

1 using System; 2 using OpenQA.Selenium; 3 using OpenQA.Selenium.Firefox; 4 using Should; 5 using TechTalk.SpecFlow; 6  7 namespace CodeBreakerGame.Specs.作为破译者 8 { 9     [Binding]10     public class 我想提交猜测的密码Steps11     {12         private IWebDriver driver = new FirefoxDriver();13 14         [Given(@"真实密码是""(.*)""")]15         public void 假如真实密码是(int code)16         {17             driver.Navigate().GoToUrl("http://localhost:1387/Game/Guess/" + code.ToString());18         }19         20         [When(@"我猜""(.*)""")]21         public void 当我猜(int guess)22         {23             driver.FindElement(By.Id("Guess")).SendKeys(guess.ToString());24             driver.FindElement(By.TagName("button")).Click();25         }26         27         [Then(@"标记为""(.*)""")]28         public void 那么标记为(string mark)29         {30             driver.FindElement(By.TagName("strong")).Text.ShouldEqual(mark);31         }32 33         [AfterScenario]34         public void AfterScenario()35         {36             driver.Quit();37         }38     }39 }

Action

1 [HttpPost] 2 public ActionResult Guess(string code, FormCollection collection) 3 { 4     var guess = collection["Guess"]; 5              6     var mark = ""; 7     for (int i = 0; i < code.Length; i++) 8     { 9         if (code[i] == guess[i])10             mark += "+";11     }12 13     for (int i = 0; i < code.Length; i++)14     {15         for (int j = 0; j < code.Length; j++)16         {17             if (i != j && code[i] == guess[j])18                 mark += "-";19         }20     }21 22     return View(new[] { guess, mark });23 }

测试结果

源代码

说明:由于受文件大小的限制,压缩包里删除了文章开头提到的4个库程序包

Selenium和Firefox版本兼容性对照表

Selenium Firefox
2.53.1 47.0.1

 说明:需要注意Selenium.WebDriver和Firefox的版本,如果不兼容可能导致测试运行不了

参考文献

[1] 

[2] 

[3] 

[4] 

[5] 

转载于:https://www.cnblogs.com/tuty/p/5538735.html

你可能感兴趣的文章
linux下echo的使用总结
查看>>
EDM营销学堂:高效提升营销邮件点击率的技巧
查看>>
ORACLE 11G静默安装配置分解
查看>>
为什么大家不相信国产虚拟化技术?
查看>>
华为首提“业务驱动基础架构”(SDI)
查看>>
Word2010使用技巧之一:熟悉功能区
查看>>
Citrix XenDektop 7 实施十 创建License Server
查看>>
RookeyFrame 通用页面 加载数据 原理
查看>>
hbuilder APP服务器端(C#)推送
查看>>
统计c盘的PE文件的个数 (遍历所有文件)
查看>>
大白话Vue源码系列目录
查看>>
EffectKeyMap系列1(Ubuntu)
查看>>
iOS手势
查看>>
Webpack源码基础-Tapable从使用Hook到源码解析
查看>>
【转载】NBU异机恢复oracle
查看>>
魅族mx5详细打开usb调试模式的步骤
查看>>
php里关于文件下载的方法(两种)
查看>>
数据绑定(数据源控件 -- ObjectDataSource)
查看>>
微信点单
查看>>
selenium操作页面元素总结
查看>>