微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将硒测试与 C# 中的酱汁实验室集成?

如何解决如何将硒测试与 C# 中的酱汁实验室集成?

在saucelabs 网站上,他们提供了这样的代码片段:

WebDriver webDriver = new WebDriver();
webDriver.set(new RemoteWebDriver(
    new URL("https://UrlHEREagwgwgqwg4894+4+91gwgq")
))

当我将它添加到我的测试中时,在 WebDriver 下,它说找不到类型或命名空间“WebDriver”。它即将出现一个命名空间。对于我的 Selenium 测试,我使用的是 IWebDriver。我试图将 WebDriver 更改为 IWebDriver,但没有奏效。我也在 URL 下收到相同的错误,说找不到命名空间。对于那个,它确实显示了使用 System.Security.Policy 的命名空间;如果我添加,那么我会在

下得到一个错误
 new URL("https://UrlHEREagwgwgqwg4894+4+91gwgq")

参数 1:无法从“System.Security.Policy.Url”转换为“OpenQA.Selenium.DriverOptions”

这就是我尝试使用它的方式。我使用 ChromeDriver 进行 selenium 测试,但将这部分注释掉以在其他带有 Saucelabs 的浏览器上进行测试。这是我第一次使用 selenium/saucelabs,所以我正在做的我完全不知道,我感谢任何建议。

 [Fact]
        public static void ClickDownloadButton()
        {
            WebDriver driver = new WebDriver();
            driver.set(new RemoteWebDriver(
            new Url("https://UrlHEREagwgwgqwg4894+4+91gwgq")
            ));
           
            //using IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl(BaseUrl.downloadsUrl);

            var login = new Login(driver);
            login.EnterEmail();
            login.EnterPassword();
            login.HitSubmit();

            webdriverwait wait = new webdriverwait(driver,TimeSpan.FromSeconds(30));
            
            var downloadButton = wait.Until((d) => d.FindElements(By.LinkText("Download File")));

            foreach (var button in downloadButton)
            {
                IWebElement element = wait.Until((d) => d.FindElement(By.LinkText("Download File")));
                element.Click();
            }
            driver.Quit();
        }

以下是 using 语句:

using Xunit;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using System.IO;
using System.Security.Policy;
using OpenQA.Selenium.Remote;

解决方法

查看我们的demo C# repository,其中包含大量示例。

这是您可以从以下 file 中使用的工作示例:

using System;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Remote;

namespace Selenium3.Nunit.Scripts.SimpleExamples
{
    [TestFixture]
    [Category("SimpleTest")]
    public class SimpleSauceTest
    {
        IWebDriver _driver;
        [Test]
        public void SimpleTest()
        {
            //TODO please supply your Sauce Labs user name in an environment variable
            var sauceUserName = Environment.GetEnvironmentVariable(
                "SAUCE_USERNAME",EnvironmentVariableTarget.User);
            //TODO please supply your own Sauce Labs access Key in an environment variable
            var sauceAccessKey = Environment.GetEnvironmentVariable(
                "SAUCE_ACCESS_KEY",EnvironmentVariableTarget.User);

            ChromeOptions options = new ChromeOptions();
            options.AddAdditionalCapability(CapabilityType.Version,"latest",true);
            options.AddAdditionalCapability(CapabilityType.Platform,"Windows 10",true);
            options.AddAdditionalCapability("username",sauceUserName,true);
            options.AddAdditionalCapability("accessKey",sauceAccessKey,true);
            options.AddAdditionalCapability("name",TestContext.CurrentContext.Test.Name,true);
            options.AddAdditionalCapability("build","ShwabTeamName:" + DateTime.Now,true);


            _driver = new RemoteWebDriver(new Uri("https://ondemand.saucelabs.com/wd/hub"),options.ToCapabilities(),TimeSpan.FromSeconds(600));
            _driver.Navigate().GoToUrl("https://www.google.com");
            Assert.Pass();
        }

        [TearDown]
        public void CleanUpAfterEveryTestMethod()
        {
            var passed = TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Passed;
            ((IJavaScriptExecutor)_driver).ExecuteScript("sauce:job-result=" + (passed ? "passed" : "failed"));
            _driver?.Quit();
        }
    }
}

不要忘记安装正确的 Nuget 包,以便您拥有相应的资源。这是您需要的最低要求:

  <package id="Selenium.Support"  />
  <package id="Selenium.WebDriver" /> 

旁注: 不要使用 static 方法,因为它会使您无法并行化。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。