0
需要注册多个节点到集线器,在此方面的任何帮助将不胜感激.Selenium网格将使用相同的驱动程序对象执行。如何在硒网格中注册多个节点到集线器
这就是我的代码的样子。
使用RemoteWebDriver为Hub实例派生类。
import java.net.URL;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import com.project.pages.ExcelConstants;
public class DriverInitializer {
private WebDriver driver = null;
public WebDriver getWebDriverFactory() {
return this.driver;
}
/**
* Returns WebDriver Instance Depending on Parameters browser and Grid d
*
* @param browser
* @param grid
* @return
*/
public WebDriver getDriver(String browser, String grid) {
if (grid.equals("y")) {
getWebDriverRemote(browser);
} else if (grid.equals("n")) {
getWebDriverLocal(browser);
}
return driver;
}
/**
* Creates Local WebDriver Instance
*
* @param browser
* @return
*/
public WebDriver getWebDriverLocal(String browser) {
try {
if (browser.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.chrome.driver",
System.getProperty("user.dir")
+ "\\Drivers\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("ignore-certificate-errors"));
driver = new ChromeDriver(options);
return driver;
}
if (browser.equalsIgnoreCase("ie")) {
System.setProperty("webdriver.ie.driver",
System.getProperty("user.dir")
+ "\\drivers\\IEDriverServer.exe");
DesiredCapabilities cap = DesiredCapabilities
.internetExplorer();
cap.setCapability(
InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR,
"accept");
cap.setCapability("nativeEvents", true);
cap.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL,
ExcelConstants.TEST_URL_2);
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(
InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
true);
return driver = new InternetExplorerDriver(cap);
}
if (browser.equals("firefox")) {
System.setProperty("webdriver.gecko.driver",
System.getProperty("user.dir")
+ "\\Drivers\\geckodriver.exe");
// Extra code added
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("acceptInsecureCerts", true);
// Extra code ended
return driver = new FirefoxDriver(capabilities);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return driver;
}
/**
* Creates Remote WebDriver Instance
*
* @param browser
* @return
*/
public WebDriver getWebDriverRemote(String browser) {
DesiredCapabilities cap = null;
try {
if (browser.equals("ie")) {
cap = DesiredCapabilities.internetExplorer();
cap.setCapability(
InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR,
"accept");
cap.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL,
ExcelConstants.TEST_URL_2);
cap.setCapability("nativeEvents", true);
cap.setBrowserName("internet explorer");
cap.setPlatform(Platform.ANY);
}
if (browser.equals("firefox")) {
cap = DesiredCapabilities.firefox();
cap.setCapability(
InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR,
"accept");
cap.setBrowserName("firefox");
cap.setPlatform(Platform.ANY);
}
if (browser.equals("chrome")) {
cap = DesiredCapabilities.chrome();
cap.setBrowserName("chrome");
cap.setPlatform(Platform.WINDOWS);
}
driver = new RemoteWebDriver(new URL(ExcelConstants.NODE_URL_1), cap);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return driver;
}
public static void main(String[] args) {
DriverInitializer di = new DriverInitializer();
di.getWebDriverRemote("chrome");
}
/**
* Implicit Wait
*/
public void waitForPageToLoad(WebDriver driver) {
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
/**
* Maximizes the window
*/
public void maximizeWindow(WebDriver driver) {
driver.manage().window().maximize();
}
}
我试过使用线程类,但无法使用该概念来实现它。
有很多现有的教程来做这个......你跟着哪个,结果是什么? – JeffC