繁体   English   中英

在 Visual Studio 中运行 Selenium Grid C# 项目

[英]Run Selenium Grid C# Project in Visual Studio

我在 Visual Studio(控制台应用程序 n 类库)中实现了 Nunit selenium C# 测试。 我在 Visual Studio 中的项目是控制台应用程序。 我开始使用硒网格

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();
        }


    }
}

我曾尝试使用测试资源管理器执行,但它没有打开任何浏览器。 我正在关注本教程

问题:

  1. 如何在浏览器打开的情况下运行项目并查看所有操作?
  2. 如何使用 Nunit-console-runner 运行。

请帮我。 谢谢。

我没有在 .Net 中使用过网格,但我的回答是:

  • 您的命令只是注册一个需要保持运行的集线器(打开浏览器并测试它是否正常工作)
  • 您需要在该集线器(不同端口)下注册您的节点(打开浏览器并测试它是否正常工作)

  • 在您的代码中,您应该使用“RemoteWebDriver”连接到集线器。 沿着这些路线的东西(它是在java中,但我希望它给你一个起点)

     public class Gmail { public WebDriver driver=null; @Parameters("browser") //testng.xml @Test() public void GmailTest(String browser) { System.out.println("Gmail " + browser); // RemoteWebdriver DesiredCapabilities cap = null; if(browser.equals("firefox")){ cap = DesiredCapabilities.firefox(); cap.setBrowserName("firefox"); cap.setPlatform(Platform.ANY); }else if (browser.equals("iexplore")){ cap = DesiredCapabilities.internetExplorer(); cap.setBrowserName("iexplore"); cap.setPlatform(Platform.WINDOWS); } driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),cap); driver.get("http://gmail.com"); driver.findElement(By.id("Email")).sendKeys("abcd"); driver.quit(); }

我希望这会有所帮助。祝你好运

我假设:
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)
  1. 将属性添加到类: [Parallelizable(ParallelScope.Self)]以便与其他测试类并行运行您的测试。
  2. 为了验证集线器是否正在运行,打开浏览器并导航到集线器机器上的http://localhost:4444

资料来源:

如何并行运行 NUnit(Selenium Grid)测试?
C#中的硒网格
有用的 C# WebDriver 示例
硒网格设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM