在Visual Studio中运行Selenium Grid C#项目
我在VisualStudio(控制台应用程序n类库)中实现了Nunit selenium C#测试。我在VisualStudio中的项目是控制台应用程序。我使用在Visual Studio中运行Selenium Grid C#项目,c#,selenium,C#,Selenium,我在VisualStudio(控制台应用程序n类库)中实现了Nunit selenium C#测试。我在VisualStudio中的项目是控制台应用程序。我使用 java -Dwebdriver.gecko.driver="..\jar\geckodriver.exe" -Dwebdriver.chrome.driver="..\jar\chromedriver.exe" -Dwebdriver.ie.driver="..\jar\IEDriverServer.exe" -jar ..\jar\
java -Dwebdriver.gecko.driver="..\jar\geckodriver.exe" -Dwebdriver.chrome.driver="..\jar\chromedriver.exe" -Dwebdriver.ie.driver="..\jar\IEDriverServer.exe" -jar ..\jar\selenium-server-standalone-3.14.0.jar -role hub -port 4444
代码:
using Automation_Framework.Manager;
using NUnit.Framework;
using OpenQA.Selenium;
using System;
using System.Collections.Generic;
using System.Text;
namespace Automation_Framework.TestManager
{
[TestFixture]
class ChromeTestManager
{
private WebDriverManager webDriverManager;
private IWebDriver driver;
public ChromeTestManager()
{
webDriverManager = new WebDriverManager();
}
[SetUp]
public void setup()
{
webDriverManager.createDriver("chrome");
driver = webDriverManager.getDriver();
}
[Test]
public void test()
{
driver.Url = "http://www.google.com.my";
driver.Navigate();
}
[TearDown]
public void shutdown()
{
driver.Close();
}
}
}
我曾尝试使用测试资源管理器执行,但它没有打开任何浏览器。我正在关注这一点
问题:
请帮助我。谢谢。我没有在.Net中使用网格,但这里是我的答案:
- 您的命令只是注册一个集线器,它需要保持运行(打开浏览器并测试它是否工作)
- 您需要在该集线器(不同端口)下注册节点(打开浏览器并测试其是否工作)
- 在代码中,应该使用“RemoteWebDriver”连接到集线器。 大致是这样的(它是java的,但我希望它能为您提供一个起点)
1.您已在本地尝试了代码,当您在没有网格的计算机上运行测试时,它将打开浏览器。
2.您的节点已设置并在中心注册 您需要:
1.使用RemoteWebDriver:
var uri = 'uri_to_your_grid_hub';
var capabilities = new ChromeOptions().ToCapabilities();
var commandTimeout = TimeSpan.FromMinutes(5);
var driver = new RemoteWebDriver(new Uri(uri),capabilities,commandTimeout)
[Parallelizable(ParallelScope.Self)]
以便与其他测试类并行运行测试这很紧急,请帮助我。你真的需要WebDriverManager吗?试着只使用IWebDriver驱动程序,就像你所学的教程一样。@nicholas,是不是只有
TestProject
没有按预期工作,主项目也没有“OpeningAnyBrowser”?
var uri = 'uri_to_your_grid_hub';
var capabilities = new ChromeOptions().ToCapabilities();
var commandTimeout = TimeSpan.FromMinutes(5);
var driver = new RemoteWebDriver(new Uri(uri),capabilities,commandTimeout)