Selenium Basic Knowledge

Selenium Basic Knowledge

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;

posted @ 2016-08-31 11:30  TomLiuxin  阅读(910)  评论(0编辑  收藏  举报