【4. 测试 IE】
想逃避 IE 吗?? 作为前端开发,IE 你是必须要面对的,冲吧!
其实你会发现, Selenium 主要也是针对 FireFox 和 IE 来制作的,所以把 FireFox 的代码修改为 IE 的,那是相当的容易,只需要简单地两步:
1)把 ExampleForFireFox.java 另存为 ExampleForIE.java
2)把 WebDriver driver = new FirefoxDriver(); 修改为 WebDriver driver = new InternetExplorerDriver();
3)一般大家的 IE都是默认路径吧,所以也不用设置 property 了
01 packagelesson1;
02
03 importorg.openqa.selenium.By;
04 importorg.openqa.selenium.WebDriver;
05 importorg.openqa.selenium.WebElement;
06 importorg.openqa.selenium.ie.InternetExplorerDriver;
07 importorg.openqa.selenium.support.ui.ExpectedCondition;
08 importorg.openqa.selenium.support.ui.WebDriverWait;
09
10 publicclassExampleForIE {
11 publicstaticvoidmain(String[] args) {
12 // 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置
13 // System.setProperty("webdriver.firefox.bin", "D:\Program Files\Mozilla Firefox\firefox.exe");
14 // 创建一个 FireFox 的浏览器实例
15 WebDriver driver =newInternetExplorerDriver();
16
17 // 让浏览器访问 Baidu
18 driver.get("http://www.baidu.com");
19 // 用下面代码也可以实现
20 // driver.navigate().to("http://www.baidu.com");
21
22 // 获取 网页的 title
23 System.out.println("1 Page title is: "+ driver.getTitle());
24
25 // 通过 id 找到 input 的 DOM
26 WebElement element = driver.findElement(By.id("kw"));
27
28 // 输入关键字
29 element.sendKeys("zTree");
30
31 // 提交 input 所在的 form
32 element.submit();
33
34 // 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
35 (newWebDriverWait(driver,10)).until(newExpectedCondition<Boolean>() {
36 publicBoolean apply(WebDriver d) {
37 returnd.getTitle().toLowerCase().endsWith("ztree");
38 }
39 });
40
41 // 显示搜索结果页面的 title
42 System.out.println("2 Page title is: "+ driver.getTitle());
43
44 // 关闭浏览器
45 driver.quit();
46 }
47 }
运行一下,是不是 so easy?
入门工作完成,现在完全可以利用 java 代码,让 Selenium 自动执行我们设置好的测试用例了,不过.....这仅仅是个开始。