选择浏览器开始测试—Selenium自动化测试指南(2)

简介:

(51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)

  操作完毕后,可看到如图5-17所示的新建项目。

  图5-17  新建的Java项目

  2.添加引用

  (1)在Package Explorer中用鼠标右键单击Project1,选择Properties,如图5-18所示。

  (2)选择Java Build Path,在右边选择Libraries,单击Add External JARs,如图5-19所示。

  图5-18  选择Properties菜单命令

  

图5-19  Add External JARs按钮

  (3)选择要添加的jar文件,如图5-20所示。

  图5-20  选择要添加的Jar文件


(4)单击“打开”按钮后,再单击Add External JARs按钮,如图5- 所示。

  (5)选择Selenium的Libs文件夹中所有与Java相关的基础框架,如图5- 所示。

  图5- 选择与Java相关的基础框架

  (6)单击“打开”按钮,然后单击OK按钮在Package Explorer中,可以看到刚才添加的包,如图5-21所示。

  图5-21  查看添加的包

  (7)在main函数中输入如图5-22所示的代码,然后按F11执行。

  图5-22  Java代码

  运行结果如图5-23所示。

  在本章中的所有Java程序都可按照这种方式进行创建。

  图5-23  程序运行结果

 5.3  选择浏览器开始测试

  要开始测试,首先得清楚要测试什么浏览器,在Selenium 2中,一共支持以下几种浏览器的测试。

  Firefox (FirefoxDriver)。

  IE (InternetExplorerDriver)。

  Chrome (ChromeDriver)。

  Opera (OperaDriver)。

  Android (AndroidDriver)。

  iPhone (IPhoneDriver)。

  需要注意的是,其中前3个浏览器是很容易就能测试的,只需在电脑中安装相应的浏览器就可以开始测试了。

  而对于Opera浏览器,C#和Java的处理方式各不相同。而对于Android和iPhone,它们在测试前需要安装支持软件,这些都将在“8.1 对Opera/IPhone/Android进行测试”中进行介绍。

  所以,在最开始阶段,假定只会用到前面3种浏览器,并且已经在自己机器上进行过安装,然后就可以开始测试了。

  要开始测试,首先得创建Selenium的实例,也就是对应的Driver。

  如果需要对Firefox进行测试,则需要用到FirefoxDriver,代码如程序清单5-3或程序清单5-4所示。

  程序清单5-3  C#代码

usingSystem;
usingOpenQA.Selenium;//注意这里引用了Selenium的命名空间
usingOpenQA.Selenium.Firefox;//注意这里引用了Selenium的命名空间
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
IWebDriverdriver=newFirefoxDriver();
}
}
}

  程序清单5-4  Java代码

packageProject1;
importorg.openqa.selenium.*;//注意这里导入了selenium包中内容
importorg.openqa.selenium.WebDriver.*;//注意这里导入了selenium包中内容
importorg.openqa.selenium.firefox.*;//注意这里导入了selenium包中内容
publicclassProject1Class{
publicstaticvoidmain(String[]args){
//如果启动出现问题,可以使用System.setProperty指出firefox.exe的路径
//System.setProperty("webdriver.firefox.bin","D:\\ProgramFiles(x86)\\MozillaFirefox\\firefox.exe");
WebDriverdriver=newFirefoxDriver();
}
}

  注意程序清单5-3和程序清单5-4中引用了一个名为OpenQA.Selenium.Firefox的命名空间,FirefoxDriver位于该命名空间内。

  如果要使用IE,则命要对名空间和实例化对象部分更改,如程序清单5-5或程序清单5-6所示。

  程序清单5-5  C#代码

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver =new InternetExplorerDriver();
}
}
}



 程序清单5-6  Java代码

package Project1;
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver.*;
import org.openqa.selenium.ie.*;
public class Project1Class {
public static void main(String[] args) {
//如果启动出现问题,可以使用System.setProperty指明webdriver.ie.driver的路径,webdriver.ie.driver可以在http://code.google.com/p/selenium/downloads/list下载
//System.setProperty("webdriver.ie.driver","E:\\IEDriverServer.exe");
WebDriver driver=new InternetExplorerDriver();
}
}

  对Chrome也是一样的,只需将命名空间改为OpenQA.Selenium.Chrome,实例化对象改为new ChromeDriver()即可。

  编译并执行程序清单的代码,对应的浏览器将会打开,如图5-24所示。

  图5-24  打开的浏览器

  5.4  浏览器导航对象Navigation

  打开了浏览器器之后,就可以打开指定的页面来进行测试了。在Selenium 1中,可以直接通过Selenium的open()方法来打开页面,但在Selenium 2中则不同,要导航页面,需要用到Navigation对象。

  可以通过WebDriver的Navigate()方法获得Navigation对象实例,代码如程序清单5-7和程序清单5-8所示。

  程序清单5-7  C#代码

IWebDriver driver = new FirefoxDriver();
INavigation navigation = driver.Navigate();

  程序清单5-8:Java代码

WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();

  在获取该对象后,就可以执行跳转到指定URL、前进、后退、刷新页面等操作了。

  5.4.1  GoToUrl()/to()

  对C#来说,可以用GoToUrl()方法来实现页面的跳转;而对Java来说,可以使用to()来进行跳转。在这两个方法中,只需将URL作为参数即可,如程序清单5-9或程序清单5-10所示。

  程序清单5-9  C#代码

IWebDriver driver = new FirefoxDriver();
INavigation navigation = driver.Navigate();
navigation.GoToUrl(http://www.baidu.com);





程序清单5-10  Java代码

WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);

  执行代码,将打开百度主页,如图5-25所示。

  图5-25:跳转到百度主页

  注意:执行GoToUrl()/to()方法时,代码会自动等待页面加载完毕再执行下一句,也就是浏览器状态栏为“完成”时再执行下一句。

  5.4.2  Back()/Forward()

  在浏览器上,可以按“前进”和“后退”按钮来进行导航,通过Back()/Forward()方法,也可以实现这种导航功能。

  下面将举例说明先打开百度主页,再打开Google主页,之后进行后退和前进操作,代码如程序清单为防止执行过快,每个操作后面加了3秒等待时间Thread.Sleep(3000)。

  程序清单5-11  C#代码

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
INavigation navigation = driver.Navigate();
navigation.GoToUrl(http://www.baidu.com);
navigation.GoToUrl("http://www.google.com.hk");
System.Threading.Thread.Sleep(3000);
navigation.Back();
System.Threading.Thread.Sleep(3000);
navigation.Forward();
}
}
}

本文选自《Selenium自动化测试指南》第五章节,本站经人民邮电出版社和作者的授权,近期将进行部分章节的连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关文章:

安装并引用Selenium 2—Selenium自动化测试指南(1)

查找条件对象By—Selenium自动化测试指南(3)   



最新内容请见作者的GitHub页:http://qaseven.github.io/

   

目录
相关文章
|
2天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
14 0
|
4天前
|
Web App开发 JavaScript 前端开发
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第20天】 在软件测试领域,自动化测试已成为提升测试效率和确保产品质量的关键手段。Selenium作为一款广泛使用的开源自动化测试框架,其设计精巧且功能强大,为Web应用提供了一种灵活、高效的测试解决方案。本文将深入探讨Selenium的核心架构与实现细节,解析其如何通过模拟用户操作来执行测试用例,以及它如何适应不断变化的Web技术标准。通过对Selenium内部机制的剖析,旨在帮助测试工程师更好地掌握该工具,并在测试实践中发挥其最大效能。
|
5天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
【4月更文挑战第17天】其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇。那是因为这个比较重要,所以宏哥专门为她量身定制了一篇。FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思。在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待。
28 3
|
7天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
33 0
|
8天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
9天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
10天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
176 59
|
10天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)
【4月更文挑战第11天】按计划今天宏哥继续讲解css的定位元素的方法。但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用。
35 2
|
1月前
|
JavaScript 前端开发 测试技术
Python Selenium基本用法
Python Selenium基本用法
29 2
|
2月前
|
Web App开发 数据采集 前端开发
基于Python的Selenium详解:从入门到实践
基于Python的Selenium详解:从入门到实践
103 0

热门文章

最新文章