(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)