到selenium的官方网站上下载几个包。一个是selenium-server-standalone.jar;还有一个是selenium- java.jar。如果你选择使用firefox(你就使用firefox吧,你会慢慢发现它的好处。)再下载个selenium-firefox- driver.jar
把它引用到你创建的maven工程中:下面是我pom.xml部分内容。
<dependency>
<groupid>org.seleniumhq.selenium</groupid>
<artifactid>selenium-java</artifactid>
<version>2.26.0</version>
</dependency>
<dependency>
<artifactid>selenium-server-standalone</artifactid>
<artifactid>selenium-firefox-driver</artifactid>
<version>2.25.0</version>
如果在 maven dependencies中存在你引的包,并且没有奇奇怪怪的符号,那么,您就可以开始第一个webdriver自动化程序了。
我们就当你已经成功创建了需要的project并且默认你有一些selenium的相关知识。我们就用webdriver干些事吧,哈哈。
创建一个login类。把下面代码拷到文件中,然后运行一下。就能看到打开www.lovo.cn,跳转到登陆页面,然后登陆成功。
package com.test.login;
import org.openqa.selenium.by;
import org.openqa.selenium.webdriver;
import org.openqa.selenium.webelement;
import org.openqa.selenium.firefox.firefoxdriver;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
public class login {
private webdriver webdriver;
private string baseurl;
private logger logger = loggerfactory.getlogger(this.getclass());
private webelement element;
public void openbrowser() throws exception{
webdriver = new firefoxdriver();
webdriver.get(baseurl);
}
public void clickloginlink(){
try {
this.openbrowser();
element = webdriver.findelement(by.linktext("登录"));
if(element != null){
element.click();
if(webdriver.findelement(by.id("logusername")) != null){
logger.info("正常跳转到登陆页");
}else{
logger.error("打开登陆页面失败");
}
}else{
logger.error("没有找到登陆链接!!!");
}
} catch (exception e) {
e.printstacktrace();
logger.error("发生未知错误!");
}
public void login(){
this.webdriver.findelement(by.id("logusername")).clear();
this.webdriver.findelement(by.id("logusername")).sendkeys("138****035");
this.webdriver.findelement(by.id("logpassword")).clear();
this.webdriver.findelement(by.id("logpassword")).sendkeys("123456");
this.webdriver.findelement(by.id("logimagecheck")).clear();
this.webdriver.findelement(by.id("logimagecheck")).sendkeys("5rkz");
this.webdriver.findelement(by.cssselector("span.btntext")).click();
this.webdriver.findelement(by.cssselector("div.text")).click();
if(this.webdriver.findelement(by.cssselector("body")).gettext().matches("^[\\s\\s]* 刘建东[\\s\\s]*$")){
this.logger.info("登陆成功!");
}else{
this.logger.error("登陆失败!");
public static void main(string[] args){
login login = new login();
login.clickloginlink();
login.login();
}
有时候打开firefox的时候会报错,说没有安装firefox之类的错误,这是因为你改变了firefox的默认安装路径。这种情况下,你可以根据firefoxbinary类实现。
方法如下:
public webdriver openfirefox() throws exception{
file file = new file("你的firefox的安装路径+firefox.exe"); //这里注意对\进行转义
firefoxbinary firefoxbin = new firefoxbinary(file);
webdriver webdriver = new firefoxdriver(firefoxbin,null);
return webdriver;
或者使用setcapabilit来设置
desiredcapabilities des = desiredcapabilities.firefox();
des.setcapability("firefox_binary", "你的firefox的安装路径+firefox.exe");
webdirver webdriver = new firefoxdriver(des);
总结;
firefoxdriver类有7个构造方法,意味着可以用7中方法打开firefox浏览器(其实比7种多),
firefoxdriver()
firefoxdriver(capabilities desiredcapabilities)
firefoxdriver(capabilities desiredcapabilities, capabilities requiredcapabilities)
firefoxdriver(firefoxbinary binary, firefoxprofile profile)
firefoxdriver(firefoxbinary binary, firefoxprofile profile, capabilities capabilities)
firefoxdriver(firefoxbinary binary, firefoxprofile profile, capabilities desiredcapabilities, capabilities requiredcapabilities)
firefoxdriver(firefoxprofile profile)
====================================分割线================================
最新内容请见作者的github页:http://qaseven.github.io/