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;

时间: 2024-10-06 20:29:27

Selenium Basic Knowledge的相关文章

The basic knowledge of block

Block(1):基础知识 代码块对象,通常称为代码块,是对C语言中函数的扩展.它有一个更被大家熟知的名字:闭包(closure). 1.使用代码块 首先看一个下面方法的调用过程,该方法接受代码块作为参数: [aDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {     NSLog(@"value for key %@ is %@", key, value);     if ([@

Selenium 学习笔记---Selenium basic all in one

Selenium 是这些年非常流行的Web UI 自动化测试工具, 很多同学学习并使用过Selenium.但是一些问题仔细想来是不是让你觉得有些困惑,比如说Selenium 到底是什么东西,为什么能支持多语言编程,到底是怎么驱动浏览器工作的……不要着急,在这篇文章中我们会一一探讨这些问题 名词解释 Selenium 是什么,包含哪些组成部分 (蓝色字体为selenium 学习过程中经常会碰到的名词): 一般来说如果没有明确指明 Selenium 2.0 或 Web Driver而单说Seleni

C++之Basic knowledge

目录 Ascii Codes Boolean Operations AND OR XOR (Exclusive Or) NOT Numerical Bases Octal numbers (base 8) Hexadecimal numbers (base 16) Binary representations Reference websites Ascii Codes It is a very well-known fact that computers can manage internal

basic knowledge

Position 属性:规定元素的定位类型.即元素脱离文档流的布局,在页面的任意位置显示. ①absolute :绝对定位:脱离文档流的布局,遗留下来的空间由后面的元素填充.定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身. ②relative :相对定位:不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域.定位的起始位置为此元素原先在文档流的位置. ③fixed :固定定位:类似于absolute,但不随着滚动条的移动而改变位置. ④st

NoSql basic knowledge

The big picture to keep in mind first is: There are lots of articles and resources out there: http://blog.sina.com.cn/s/blog_3fe961ae010139u6.html http://old.sebug.net/paper/databases/nosql/Nosql.html http://blog.csdn.net/godfrey90/article/details/67

Basic knowledge of html (keep for myself)

1. 通常标签 <strong> 替换加粗标签 <b> 来使用, <em> 替换 <i>标签使用. 2. 在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种meta信息.     可以添加在头部区域的元素标签为: <title>, <style>, <meta>, <link>, <script>, <noscript>, and <b

Network Basic Knowledge

@1: 应用层的常用协议以及对应的端口号: DNS 53/tcp/udp SMTP 25/tcp POP3 110/tcp HTTP 80/tcp HTTPS 443/udp TELNET 23/tcp FTP 20/21/tcp tftp 69/udp IMAP 143/tcp snmp 161/udp snmptrap 162/udp @2:

[Tango] Basic Knowledge

Project Tango类设备能够给开发者在哪些领域带来机会. 室内导航*:室内GPS信号的缺失,使得Project Tango设备会成为室内导航重要应用场景之一.有了它,你就不会在不熟悉的室内商场.机场迷路.三维场景的室内导航,为盲人提供了更大的便利.[ 路径规划算法浅谈] 游戏:虚拟现实游戏和新型交互游戏前景可期.有人指出,Project Tango设备与美国宇航局勇气号探测器并无太大区别.此类设备可以通过扫描现实世界,让信息与虚拟世界相融合,这也使得我们能够随时随地玩虚拟现实或现实增强游

Basic knowledge of javaScript (keep for myself)

1. 函数表达式 JavaScript 函数可以通过一个表达式定义.eg. var x = function (a, b) {return a * b}; so: var x = function (a, b) {return a * b}; var z = x(4, 3); 以上函数实际上是一个 匿名函数 (函数没有名称). 函数存储在变量中,不需要函数名称,通常通过变量名来调用. 2. 在 JavaScript 中,很多时候,你需要避免使用 new 关键字. 3. 函数提升(Hoisting