【问题标题】:Error CS0103: The name 'TimeSpan' does not exist in the current context (CS0103) (testingProgram)?错误 CS0103:当前上下文 (CS0103) (testingProgram) 中不存在名称“TimeSpan”?
【发布时间】:2019-01-05 14:20:45
【问题描述】:

我正在尝试在 Visual Studio 中使用 selenium 驱动程序在 C# 中创建测试。我收到以下错误。错误 CS0103:当前上下文 (CS0103) (testingProgram) 中不存在名称“TimeSpan”?我在提供的图像中还显示了第二个错误。代码使用 PageObjectPattern >> https://www.automatetheplanet.com/page-object-pattern/

顺便说一句,我使用的是 Mac。我添加了一些图像以帮助更好地描述情况。以下图像显示了这两个文件。有人可以尝试在他们的一端运行,看看它是否有效。

我该如何解决这个问题?有人可以尝试运行该程序以查看它是否正在运行吗?如何让这个程序成功运行?

下面是代码-

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Support.UI;

[TestClass]
public class SearchEngineTests
{
    public IWebDriver Driver { get; set; }
    public WebDriverWait Wait { get; set; }

    [TestInitialize]
    public void SetupTest()
    {
        this.Driver = new FirefoxDriver();
        this.Wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(30));
    }

    [TestCleanup]
    public void TeardownTest()
    {
        this.Driver.Quit();
    }

    [TestMethod]
    public void SearchTextInSearchEngine_First()
    {
        SearchEngineMainPage searchEngineMainPage = new SearchEngineMainPage(this.Driver);
        searchEngineMainPage.Navigate();
        searchEngineMainPage.Search("Automate The Planet");
        searchEngineMainPage.ValidateResultsCount("264,000 RESULTS");
    }
}

这是第二个文件-

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;

public class SearchEngineMainPage
{
    private readonly IWebDriver driver;
    private readonly string url = @"searchEngineUrl";


    [FindsBy(How = How.Id, Using = "sb_form_q")]
    public IWebElement SearchBox { get; set; }

    [FindsBy(How = How.Id, Using = "sb_form_go")]
    public IWebElement GoButton { get; set; }

    [FindsBy(How = How.Id, Using = "b_tween")]
    public IWebElement ResultsCountDiv { get; set; }

    public void Navigate()
    {
        this.driver.Navigate().GoToUrl(this.url);
    }

    public void Search(string textToType)
    {
        this.SearchBox.Clear();
        this.SearchBox.SendKeys(textToType);
        this.GoButton.Click();
    }

    public void ValidateResultsCount(string expectedCount)
    {
        Assert.IsTrue(this.ResultsCountDiv.Text.Contains(expectedCount), "The results DIV doesn't contains the specified text.");
    }
}

【问题讨论】:

    标签: c# visual-studio selenium testing automated-tests


    【解决方案1】:

    好的,因此,在这两种情况下,错误消息都会准确地告诉您缺少什么。

    首先TimeSpanSystem命名空间中,而using System;里面没有using System;,所以编译器找不到。

    其次,SearchEngineMainPage 没有带单个参数的构造函数(实际上它根本没有构造函数,所以编译器会为您生成一个,但那个不带参数,所以它仍然是不好)。

    【讨论】:

    • 它对你有用吗?您是否转到问题中的链接?我已经从该示例中复制了代码......如果有帮助,它还使用硒驱动程序。
    • 你看我的回答了吗?如果还是不明白,建议你去买一本 C# 的书,因为你这两个问题都是初学者的 C# 错误。
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多