Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。
由 Simon Stewart(来自 Google)创建的 WebDriver 是一个具有类似目标的项目。要控制浏览器,需要依赖采用本机支持的独立客户端。WebDriver 仅提供 Java 绑定,并不能支持 Selenium 1 所能支持的那么多浏览器。
Selenium 2 具有来自 WebDriver 的清晰面向对象 API,并能以最佳的方式与浏览器进行交互。Selenium 2 不使用 JavaScript 沙盒,它支持多种浏览器和多语言绑定。
Selenium2.0 = Selenium1.0 + WebDriver
WebDriver Server起翻译作用,使code与浏览器互相通信:
Server开启一个浏览器时,会监听一个端口。Http://localhost:5555
Preparation
WebDriver.dll
WebDriver.Support.dll
IEDriverServer.exe
chromedriver.exe
(FireFox完美支持)
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Interactions;(Actions->MoveToElement(); ContextClick();
DoubleClick())
WebDriver.dll – Selenium 2.0的主要API文件;(IWebDriver; IWebElement; )
WebDriver.Support.dll – WebDriver支持类,起辅助作用。其中包含一些HTML元素选择、条件等待、页面对象创建等的辅助类;(WebDriverWait)
选择浏览器
IWebDriver driver = new InternetExplorerDriver();
IWebDriver driver = new ChromeDriver();
IWebDriver driver = new FirefoxDriver();
浏览器导航对象
driver.Navigate().GoToUrl("www.baidu.com");
driver.Navigate().Back();
driver.Navigate().Forward();
driver.Navigate().Refresh();
元素查找
driver.FindElement(By.Id("id"));
driver.FindElement(By.Name("name"));
driver.FindElement(By.ClassName("classname"));
driver.FindElement(By.LinkText("linktext"));
driver.FindElement(By.TagName("tagname"));
driver.FindElement(By.CssSelector("div.classname>div#login button:nth-child(1)"));
driver.FindElement(By.XPath("div.classname.login//div[class=‘classname‘]/button[1]"));
属性选择器
div[class*=‘azc-dockedballoon-info‘]
input[class^=‘azc-input‘]
选择器 W3School 描述
[attribute] 用于选取带有指定属性的元素。
[attribute=value] 用于选取带有指定属性和值的元素。
[attribute~=value] 用于选取属性值中包含指定词汇的元素。
[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value] 匹配属性值以指定值开头的每个元素。
[attribute$=value] 匹配属性值以指定值结尾的每个元素。
[attribute*=value] 匹配属性值中包含指定值的每个元素。
弹出对话框的处理(可以使用UIAF)
driver.SwitchTo().Alert().Accept();
driver.SwitchTo().Alert().Dismiss();
浏览器多窗口处理
IList<string> handles = driver.WindowHandles;
driver.SwitchTo().Window(handles[0]);
窗体控制 (可以使用UIAF)
driver.Manage().Window.Position.X;
driver.Manage().Window.Position.Y;
driver.Manage().Window.Maximize();
注意
Browser zoom to 100%
Internet Options – Security – Checked All
iFrame 需要切
Selenium 学习 官网文档:http://seleniumhq.org/docs/ 中文论坛:http://seleniumcn.cn/ 私房菜:http://www.cnblogs.com/hyddd/archive/2009/05/30/1492536.html
书籍:《零成本实现Web自动化测试》
Selenium 使用 WebDriver.dll download path: http://code.google.com/p/selenium/downloads/list IEDriverServer.exe download path: http://docs.seleniumhq.org/download/
New Visual C#-> “Console Application”.
New InternetExploreDriver(): 命令IE浏览器打开一个session; 以后的操作都使用这个session;