搭建selenium grid,调用IE进行web自动化测试

1.搭建服务端集群

使用selenium提供的服务端独立jar包 ;服务端、客户端都是运行于java7环境。

1.1启动hub

java -jar selenium-server-standalone-2.48.2.jar -role hub -port 802

1.2启动node

IEDriverServer.exe和chromedriver.exe要下载到每个node节点,用于启动IE、chrome。

java -jar selenium-server-standalone-2.48.2.jar -role node -hub "http://127.0.0.1:802/grid/register" -port 803 -Dwebdriver.ie.driver="D:\autoTest\IEDriverServer.exe" -Dwebdriver.chrome.driver="D:\autoTest\chromedriver.exe"  -Dwebdriver.firefox.bin="E:\Program Files\Mozilla Firefox\firefox.exe" -browser "browserName=internet explorer,maxInstances=5,version=11,platform=WINDOWS" -browser "browserName=chrome,maxInstances=2,version=47,platform=WINDOWS" -browser "browserName=firefox,maxInstances=3,version=38,platform=WINDOWS"


2.设置node节点的注册表

2.1找到节点

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\      (32位windows)

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\     (64位windows)


2.2在项FEATURE_BFCACHE里新建一个DWORD值:

名称为iexplore.exe,数值为0


2.3在项FEATURE_HTTP_USERNAME_PASSWORD_DISABLE里新建一个DWORD值:

名称为iexplore.exe,数值为0


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE]
"iexplore.exe"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000



3.使用java代码调用selenium grid进行web自动化测试

把selenium提供的客户端jar包都添加进build path。(selenium为客户端提供了一个zip,里面有超过50个jar包)

package selenium;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Tester {
	public static void main(String[] args) throws MalformedURLException {
		DesiredCapabilities capability = DesiredCapabilities.internetExplorer();// 指定调用IE进行测试
		capability
				.setCapability(
						InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
						true);// 避免IE安全设置里,各个域的安全级别不一致导致的错误
		// 连接到selenium hub,远程启动浏览器
		WebDriver driver = new RemoteWebDriver(new URL(
				"http://localhost:802/wd/hub"), capability);
		driver.manage().window().maximize();
		driver.get("http://www.baidu.com");
		// 输入查询条件
		WebElement query = driver.findElement(By.id("kw"));
		query.sendKeys("auto test");
		query.submit();
		// 等待返回结果
		WebDriverWait wait = new WebDriverWait(driver, 15, 100);
		By byResult = By.xpath("//*[@class='nums']");
		wait.until(ExpectedConditions.visibilityOfElementLocated(byResult));
		// 输出结果
		WebElement elResult = driver.findElement(byResult);
		System.out.println(elResult.getText());
		// 关闭driver
		driver.quit();
	}
}


猜你喜欢

转载自blog.csdn.net/wzp1986/article/details/50494151