对远程浏览器执行Selenium 2测试
-
28-09-2019 - |
题
我想拥有一种配置,我的构建服务器运行了一个Nunit测试,该测试在远程计算机上打开并驱动浏览器。做这件事的最佳方法是什么?
在Selenium 1中很容易做到,因为Java代理服务器坐在您的测试和浏览器之间。在Selenium 2中,您的测试直接与浏览器(至少在IE和Firefox中)进行通信。
有一个好方法吗?可能有WCF服务或其他东西?
解决方案
从 http://code.google.com/p/selenium/. 。然后开始使用远程计算机上的命令行(您需要在此处安装Java):
java -jar selenium-server-standalone-2.0a6.jar
还有一个 .NET实现服务器, ,但它的版本是Java One的背后
那你应该使用 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://code.google.com/p/selenium/wiki/remotewebdriverserver
其他提示
C#这样做的示例在下面的链接中列出。 Firefox的驱动程序文件与远程计算机上运行所需的Selenium Server Jar内置。但是Chrome驱动程序和Internet Explorer驱动程序的位置需要通过选项传递给服务器。
有关更多详细信息,请参考此链接如何使用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();
}
不隶属于 StackOverflow