Webdriver(selenium2.0)+NUnit+C# (二)
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,namespace SeleniumTests{ [TestFixture] public class Login { private IWebDriver drive
千家信息网最后更新 2025年02月07日Webdriver(selenium2.0)+NUnit+C# (二)
namespace SeleniumTests{ [TestFixture] public class Login { private IWebDriver driver; private StringBuilder verificationErrors; private string baseURL; private bool acceptNextAlert = true; [SetUp] public void SetupTest() { driver = new FirefoxDriver(); baseURL = "URL"; verificationErrors = new StringBuilder(); } [TearDown] public void TeardownTest() { try { driver.Quit(); } catch (Exception) { // Ignore errors if unable to close the browser } Assert.AreEqual("", verificationErrors.ToString()); } [Test] public void TheLoginTest() { driver.Navigate().GoToUrl(baseURL + "/login"); driver.FindElement(By.Name("username")).Clear(); driver.FindElement(By.Name("username")).SendKeys("USERNAME"); driver.FindElement(By.Name("password")).Clear(); driver.FindElement(By.Name("password")).SendKeys("PASSWORD"); driver.FindElement(By.XPath("//button[@type='submit']")).Click(); } } }
上面是用selenium ide 录制的某个页面的登录操作代码。像是输入用户名和密码的代码就有点重复多余繁琐,那就可以封装一个叫SendKeys的方法(包括clear和sendkeys的动作),而不需要每次去找这个element,先clear,然后再重复去找这个element再sendkeys。类似这种常用的操作都可以封装起来,放在一个Common类里(Common项目)而一些操作case放在另外的项目中。下面就是对上述例子进行封装操作。
namespace TestSelenium.Test{ [TestFixture] class Test { TestSelenium.Common.Common Testcorde = new Common.Common(); [SetUp] public void Setup() { Testcorde.SetupTest(); } [TearDown] public void TearDown() { Testcorde.TeardownTest(); } [Test] public void Test01() { Testcorde.TheLoginTest("URL","USERNAME","PASSWORD" ); } }}
上面Test01就是登录操作的case,TheLoginTest(string baseurl, string username, string password)就是整个登录操作的方法。像是SetupTest、TeardownTest、SendKeys、Click、TheLoginTest都放在下面的Common类下。
namespace TestSelenium.Common{ public class Common { public IWebDriver driver; public void SetupTest() { driver = new InternetExplorerDriver(@"C:/AUTO"); driver.Manage().Window.Maximize(); } public void TeardownTest() { driver.Quit(); } public void SendKeys(By by, string Message) { driver.FindElement(by).Clear(); driver.FindElement(by).SendKeys(Message); } public void Click(By by) { driver.FindElement(by).Click(); } public void TheLoginTest(string baseurl, string username, string password) { driver.Navigate().GoToUrl(baseurl + "/login"); SendKeys(By.Name("username"),username); SendKeys(By.Name("password"), password); Click(By.XPath("//button[@type='submit']")); } }}
ps.Common项目为类库输出类型,case项目需要引用Common项目并且保持都是ANYCPU生成。
项目
就是
封装
登录
代码
方法
繁琐
例子
动作
密码
常用
用户
用户名
类型
面的
页面
生成
输入
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
观澜华为服务器生产
数据库like条件
苏州软件开发定制聚顶科技好
我是网络安全小报
幻塔每次传送都连不到服务器
数据库系统建华
网络安全安全隐患修复报告书
hp 打印机服务器
网络安全专业需要编写程序吗
扫黑除恶网络安全专项整治
阳江智能家居软件开发
软件开发类免税骗局
万方数据库收录检索
高二网络技术应用
网络安全国家安全手抄报图片
数据库怎么写需求分析作业题目
梦幻年内服务器那个人多
金融业网络安全总结
中水渔业数据库
腾讯网络安全工程师工资
软件开发模型选择的原则
打印管理服务器不可用
软件开发专业长沙的大学
实体餐饮店的数据库
数据库时间格式tz
武汉同乐恒通网络技术有限公司
csgo服务器加载失败
数据源管理服务器怎么填
数据库技术的具体运用有哪些
做软件开发男生内向