是否可以在不安装Selenium Server的情况下使用ISelenium / DefaultSelenium?

时间:2012-03-08 10:19:37

标签: c# selenium webdriver

我之前使用IWebDriver控制IE进行测试。但是IWebDriver和IWebElement支持的方法非常有限。我发现属于Selenium命名空间的ISelenium / DefaultSelenium非常有用。如何在不安装Selenium Server的情况下使用它们来控制IE?

这是DefaultSelenium的构造函数:

ISelenium sele = new DefaultSelenium(**serveraddr**, **serverport**, browser, url2test);
sele.Start();
sele.Open();
...

似乎我必须在创建ISelenium对象之前安装Selenium Server。

我的情况是,我正在尝试使用C#+ Selenium构建一个.exe应用程序,它可以在不同的PC上运行,并且不可能在所有PC上安装Selenium Server(你永远不知道哪一个是下一个运行的应用程序)。

有没有人知道如何在不安装服务器的情况下使用ISelenium / DefaultSelenium? THX!

1 个答案:

答案 0 :(得分:2)

在不使用RC Server的情况下,Java中有一些解决方案:

1)对于selenium浏览器启动:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("safari");
CommandExecutor executor = new SeleneseCommandExecutor(new URL("http://localhost:4444/"), new URL("http://www.google.com/"), capabilities);
WebDriver driver = new RemoteWebDriver(executor, capabilities);

2)对于selenium命令:

// You may use any WebDriver implementation. Firefox is used here as an example
WebDriver driver = new FirefoxDriver();

// A "base url", used by selenium to resolve relative URLs
 String baseUrl = "http://www.google.com";

// Create the Selenium implementation
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);

// Perform actions with selenium
selenium.open("http://www.google.com");
selenium.type("name=q", "cheese");
selenium.click("name=btnG");

// Get the underlying WebDriver implementation back. This will refer to the
// same WebDriver instance as the "driver" variable above.
WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getWrappedDriver();

//Finally, close the browser. Call stop on the WebDriverBackedSelenium instance
//instead of calling driver.quit(). Otherwise, the JVM will continue running after
//the browser has been closed.
selenium.stop();

此处描述:http://seleniumhq.org/docs/03_webdriver.html

谷歌在C#中有类似的东西。 没有其他方法可以实现这一点。