Selenium2学习笔记一

Selenium1和Selenium2

    Selenium1.0是一个基于浏览器的开源自动化测试工具,它中可以使用多种语言编程,在运行Selenium1.0程序之前,需要先启动selenium server服务,及selenium remote control,简称为RC。由于其实由JavaScript实现的,所以只要支持JavaScript的浏览器都可以很好的支持它。而Selenium2.0是Selenium1.0和WebDriver的结合,WebDriver可以直接操作HTML Unit驱动,速度快。Selenium2.0最显著的特点就是不需要再启动server服务了。

Selenium2下载

    各版本下载地址:http://selenium-release.storage.googleapis.com/index.html
    选择其中一个版本,如下图所示:
Selenium2学习笔记一_第1张图片
    selenium-java.zip是用于我们在Java编程中使用的,里面包含了所需的jar包,在Java编程中需要加入里面相应的jar包方可使用selenium提供的Java API。IEDriverServer.zip是一个IE浏览器的驱动,当我们在程序中使用InternetExplorerDriver来创建一个IE浏览器的WebDriver时,需要使用到。selenium-server.zip和selenium-server-standalone.jar两个需要配合使用,用于启动selenium服务。

启动Selenium2 Server

  1. 首先下载JDK,并配置到环境变量中。
  2. 下载selenium-server-2.50.0.zip并解压出selenium-server-2.50.0文件夹,下载selenium-server-standalone-2.50.0.jar,将其放入selenium-server.zip解压的目录下面。在Windows下打开命令行,来到selenium-server-2.50.0文件夹下,输入以下命令:
java -jar selenium-server-standalone-2.50.0.jar
      可以看到,Selenium Server已经启动成功了,可以看到连接的IP地址和端口号。
      Selenium2学习笔记一_第2张图片

启动firefox浏览器

    首先需要在IDE下面创建一个Java 项目,然后加入selenium-java-2.50.0.zip解压出的文件夹下的jar包,可以全部加入,并添加到class path下面。 以下程序大概做的是:创建一个WebDriver去访问百度,然后根据id得到搜索输入框,输入Selenium2,点击百度一下按钮进行查询。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.firefox.FirefoxDriver;

public class FirefoxExample {
	public static void main(String[] args) {
		//设置火狐浏览器.exe执行文件所在的位置,WebDriver创建时会到该目录下去寻找
		System.setProperty("webdriver.firefox.bin","D:\\Firefox\\firefox.exe");
		WebDriver driver = new FirefoxDriver();
		
		Navigation navigation = driver.navigate();
		navigation.to("https://www.baidu.com");
		
		WebElement subox = driver.findElement(By.id("kw"));
		subox.sendKeys("Selenium2");
		WebElement subtn = driver.findElement(By.id("su"));
		subtn.click();

		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		driver.close();
	}
}
    如果运行时出现了如下类似的异常,可能的原因是你当前使用的selenium-java-2.50.0版本,不支持你当前使用的火狐浏览器,可以下载新版本的selenium-java-2.50.0或者下载版本较低的火狐浏览器。
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
modules/Task.jsm:319:40
TaskImpl@resource://gre/modules/Task.jsm:280:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14
loadManifestFromZipFile<@resource://gre/modules/addons/XPIProvider.jsm:1406:26
TaskImpl_run@resource://gre/modules/Task.jsm:319:40
TaskImpl@resource://gre/modules/Task.jsm:280:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14
loadManifestFromFile@resource://gre/modules/addons/XPIProvider.jsm:1416:12
AddonInstaller.InstallerService._shouldInstall/<@resource://addoninstaller/installerService.js:319:49
safeCall@resource://gre/modules/AddonManager.jsm:179:5
makeSafe/<@resource://gre/modules/AddonManager.jsm:195:25
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:750:11

启动IE浏览器

    IE浏览器与火狐不同的是,需要下载IE浏览器的驱动,并设置到系统变量中才可以运行。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEExample {
	public static void main(String[] args) {
		//设置IE浏览器驱动的位置
		System.setProperty("webdriver.ie.driver", "E:\\OpenSource\\selenium\\IEDriverServer_x64_2.50.0\\IEDriverServer.exe");
		WebDriver driver = new InternetExplorerDriver();
		
		Navigation navigation = driver.navigate();
		navigation.to("https://www.baidu.com");
		
		WebElement subox = driver.findElement(By.id("kw"));
		subox.sendKeys("软件测试");
		WebElement subtn = driver.findElement(By.id("su"));
		subtn.click();

		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		driver.close();
	}
}

启动chrome浏览器

    谷歌浏览器同样需要下载驱动,并设置到系统变量中。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeExample {
	public static void main(String[] args) {
		//设置谷歌浏览器驱动的位置
		System.setProperty("webdriver.chrome.driver", "E:\\OpenSource\\selenium\\chromedriver_win32\\chromedriver.exe");
		System.setProperty("webdriver.chrome.bin", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
		WebDriver driver = new ChromeDriver();
		
		Navigation navigation = driver.navigate();
		navigation.to("https://www.baidu.com");
		
		WebElement subox = driver.findElement(By.id("kw"));
		subox.sendKeys("Selenium2");
		WebElement subtn = driver.findElement(By.id("su"));
		subtn.click();

		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		driver.close();
	}
}



你可能感兴趣的:(Selenium2,selenium2)