Visual Studio: 'using namespace' 未被识别

Visual Studio: 'using namespace' not being recognized

我有一个 Selenium 框架,自创建以来一直运行顺利。我今天实施了 Visual Studio Team Explorer,从我的远程分支中拉出后,Intellisense 开始对我大喊大叫,说我的命名空间之一不存在。它不喜欢的行是

using PageObjectModel.PageObjects.Maintenance;

var SettlementAccountReconciliations = new SettlementAccountReconciliation(_driver);

SettlementAccountReconciliation 位于 Maintenance 目录中。这是我测试 class 的完整代码,它不喜欢目录:

using NLog.Internal;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using PageObjectModel.ControlObjects;
using PageObjectModel.PageObjects;
using PageObjectModel.PageObjects.Process;
using PageObjectModel.PageObjects.Status;
using System;
using PageObjectModel.PageObjects.Maintenance; // **LINE WITH MAINTENANCE UNDERLINED**


namespace PageObjectModel.Tests.TaskTesting
{
    [TestFixture]
    class JiraTaskTesting
    {
        private IWebDriver _driver;

        [OneTimeSetUp]
        public void SetUp()
        {
            _driver = new ChromeDriver();
            DriverContext.Driver = _driver;

            _driver.Manage().Window.Maximize();
            var ConfigManager = new ConfigurationManager();
            var Login = new Login(_driver);
            Login.SignIn(ConfigManager.AppSettings["Username"], ConfigManager.AppSettings["Password"]);
        }

        [Test]
        public void ReportNameStandardizationSettlementAccountReconciliations()
        {
            // **LINE WITH UNDERLINE**
            var SettlementAccountReconciliations = new SettlementAccountReconciliation(_driver);
            var Utilities = new Utilities(_driver);
            var ReportPopup = SettlementAccountReconciliations.ExportReconciliationReport();
            ReportPopup.StartDate.SetValue(DateTime.Now.ToString("MM/dd/yyyy"));
            ReportPopup.EndDate.SetValue(DateTime.Now.ToString("MM/dd/yyyy"));
            ReportPopup.ExportButton.Click();
            Assert.IsTrue(Utilities.ValidateFilePresent("Settlement Account Reconciliation"));
            Utilities.DeleteFile("Settlement Account Reconciliation");
        }

此外,这是在 Maintenance 命名空间中找到的 SettlementAccountReconciliation:

using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
using OpenQA.Selenium.Support.UI;
using System;

namespace PageObjectModel.PageObjects.Maintenance
{
    public class SettlementAccountReconciliation
    {
        private readonly IWebDriver _driver;

        public SettlementAccountReconciliation(IWebDriver driver)
        {
            _driver = driver;
            PageFactory.InitElements(driver, this);
            var Utilities = new Utilities(driver);
            string TradingUrl = Utilities.RefactorUrl("/SettlementAccountReconciliation");
            driver.Navigate().GoToUrl(TradingUrl);
            WebDriverWait Wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            try
            {
                Wait.Until(ExpectedConditions.ElementExists(By.XPath("//a[text()='Settlement Account Reconciliations']")));
                Console.WriteLine("SettlementAccountReconciliation Page Label Found");
            }
            catch
            {
                Console.WriteLine("SettlementAccountReconciliation Page Label Not Found, timing out");
            }
        }

这是我在指令测试 class 中显示的图像:

对于 SettlementAccountReconciliation 构造函数:

我的所有代码都是页面对象模型格式,我的文件结构是这样排列的:

我知道这个问题很啰嗦,但要继续,测试 运行 很好,解决方案很有魅力。我只需要弄清楚如何让文本编辑器不认为我的代码有问题。

Visual Studio 告诉我 "The type or namespace name 'Maintenance' does not exist in the namespace PageObjectModel.PageObjects'",但确实如此。

如有任何帮助,我们将不胜感激。

编辑:

我修好了。

我不知道它为什么起作用,但确实起作用了。

我所做的只是将 Maintenance 文件夹重命名为 Maintenance1,重新创建 Maintenance 文件夹,并将 SettlementAccountReconciliation class 拖放到 Maintenance 文件夹中。

我猜有一些随机 属性 或设置存储在 Timbuktu 某处的临时文件夹中,该文件夹存储在创建新文件夹时被重置或删除的现有文件夹中。

感谢所有花时间帮助我的人!

我之前遇到过这个问题。检查项目目录中的文件和文件夹名称,项目属性中的命名空间和程序集名称,并检查是否已将项目添加为引用,引用的路径是否与实际路径一致.我有一种强烈的感觉,如果你在任何时候重构它并且你认为你引用的代码实际上不是被引用的代码,那么某处就会存在一些不一致。

我将 Maintenance 文件夹重命名为 Maintenance1,重新创建 Maintenance 文件夹,并将 SettlementAccountReconciliation class 拖放到 Maintenance 文件夹中,似乎已解决问题。

我猜有一些随机的 属性 或设置存储在 Timbuktu 某处的临时文件夹中,该文件夹是为创建新文件夹时重置或删除的现有文件夹存储的。