Selenium是一个用于Web应用程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操做同样。所以使用Selenium则能够实现模拟真实用户测试web应用程序。java
从上面能够看到Selenium是用来测试web应用程序的,那么天然离不开浏览器。那么下面看看使用的步骤:git
对于IE浏览器和Chrome浏览器都须要下载driver。因为墙过于坚实,此处可提供chromedriver的一个下载地址github
firefox只需指定firefox.exe的路径web
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency>
固然本文是以选择Chrome浏览器为例,若是你选择其余浏览器的话则须要添加其余浏览器的driver 包,例如selenium-firefox-driver 和selenium-ie-driverchrome
此处用Unit Test做为启动selenium的程序,同时也表示一个case。浏览器
对于Chrome浏览器在执行case以前必须指定chromedriver.exe的路径app
System.setProperty("webdriver.chrome.driver", "D:\\tool\\chromedriver.exe");
建立一个casemaven
建立WebDriver实例工具
WebDriver webDriver = new WebDriver();
指定url地址
测试
webDriver.get("http://zhangjun817.duapp.com");
为了防止程序启动浏览器时响应超时,设置请求超时时间,此处以秒为单位
WebDriverWait wait = new WebDriverWait(webDriver, 5);
接下来就能够调用webdriver里的findElement方法选择页面元素了,我的觉的这个方法跟js里的document.getElementBy方法很类似。惟一的区别是须要给与传的参数为特定的类By对象,例如:
//经过文字查找元素,并触发单击事件 webDriver.findElement(By.linkText("Sign in")).click(); //经过元素name查找元素并填充数据 webDriver.findElement(By.name("username")).sendKeys("harry.zhang@buglife.cn"); webDriver.findElement(By.name("password")).sendKeys("buglife.cn"); //经过Id查找元素 webDriver.findElement(By.id("login")).click(); //经过class属性值查找元素 webDriver.findElement(By.className("glyphicon-log-out")).click();
固然也能够经过webDriver.findElements查询多个元素,此处再也不一一列举,关于webdriver的方法可查看源码。
可访问源码地址