2012-03-08 73 views
4

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

这里的DefaultSelenium的构造函数:

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

看来我之前,我创建一个ISelenium对象安装Selenium服务器。我试图用C#+ Selenium来构建一个.exe应用程序,它可以在不同的PC上运行,并且不可能在所有PC上安装Selenium Server(你永远不知道哪一个是下一个运行的该应用程序)。

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

+0

如果您使用WebDriver(Selenium 2),它不需要启动Selenium Server – 2012-12-13 05:02:38

回答

2

有一些Java的解决方案,而无需使用RC服务器:

1)对于硒浏览器的启动:

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)硒命令:

// 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#中类似的东西。 Theres没有其他办法来实现这一点。

+0

Coretek,它在我的身边运行良好。多谢!感谢您的帮助! – 2012-03-09 02:47:59

+0

我还有一个问题。这是什么意思? “WebDriver driverInstance =((WebDriverBackedSelenium)selenium).getWrappedDriver();”我不明白。 – 2012-03-09 02:58:40

+0

要使用webdriver命令,请调用driverInstance – ctekk 2012-03-09 09:20:46

相关问题