5

我想要一个配置,让我的构建服务器运行一个 NUnit 测试,该测试在远程机器上打开并驱动浏览器。实现这一目标的最佳方法是什么?

这在 Selenium 1 中很容易做到,因为 java 代理服务器位于您的测试和浏览器之间。在 Selenium 2 中,您的测试直接与浏览器通信(至少在 IE 和 Firefox 中)。

有没有好的方法来做到这一点?可能有 WCF 服务之类的?

4

2 回答 2

6

您需要从http://code.google.com/p/selenium/获取独立的 Selenium 服务器(当前是 selenium-server-standalone-2.0a6.jar) 。然后从远程机器上的命令行开始(你需要在那里安装 Java):

java -jar selenium-server-standalone-2.0a6.jar

还有一个服务器的 .NET 实现,但它的版本落后于 Java 版本

然后你应该使用RemoteWebDriver

IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"),DesiredCapabilities.InternetExplorer());

然后像在“本地”测试中一样使用驱动程序

更多信息:

http://code.google.com/p/selenium/wiki/RemoteWebDriver

http://www.google.com/codesearch/p?hl=en#CJyJMZi8hYc/trunk/remote/client/src/csharp/webdriver-remote/RemoteWebDriver.cs

http://code.google.com/p/selenium/wiki/RemoteWebDriverServer

于 2010-10-14T13:14:48.643 回答
2

下面的链接中列出了执行此操作的 C# 示例。Firefox 的驱动程序文件内置有 selenium 服务器 jar,需要在远程机器上运行。但是 chrome 驱动程序和 Internet Explorer 驱动程序位置需要在启动时使用选项 -Dwebdriver.ie.driver 和 -DWebdriver.chrome.driver 传递给服务器

有关更多详细信息,请参阅此链接 如何在 C# 中使用远程 webdriver 调用/运行不同类型的 web 驱动程序浏览器

基本代码如下所示

        [Test]
    public void Test_OpeningHomePageUsingIE()
    {
        // Step b - Initiating webdriver
        IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), DesiredCapabilities.InternetExplorer());
        //Step c : Making driver to navigate
        driver.Navigate().GoToUrl("http://docs.seleniumhq.org/");       
        //Step d 
        IWebElement myLink = driver.FindElement(By.LinkText("Download"));
        myLink.Click();
        //Step e
        driver.Quit();
    }
于 2013-10-09T20:07:56.683 回答