在尝试运行下面的Selenium代码之后,我在Visual中获得了很多CS0246代码错误消息。我选择了ASP.Net核心文件来编程代码。
该文件名为LoginTest.cs。以下是代码:
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace Tests
{
[TestFixture]
class LoginTest
{
IWebDriver Driver;
[SetUp]
public void SetUp()
{
Driver = new FirefoxDriver();
}
[TearDown]
public void TearDown()
{
Driver.Quit();
}
[Test]
public void ValidAccount()
{
Driver.Navigate().GoToUrl("http://the-internet.herokuapp.com/login");
Driver.FindElement(By.Id("username")).SendKeys("tomsmith");
Driver.FindElement(By.Id("password")).SendKeys("SuperSecretPassword!");
Driver.FindElement(By.CssSelector("button")).Click();
}
}
}我收到的错误消息是:
CS0246无法找到类型或命名空间名称'NUnit‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'OpenQA‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'OpenQA‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'TestFixtureAttribute‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'TestFixture‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'IWebDriver‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'SetUpAttribute‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'SetUp‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'TearDownAttribute‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'TearDown‘(您是缺少使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'TestAttribute‘(您是缺少使用指令还是程序集引用?)无法找到类型或名称空间名称‘CS0246’(您是缺少了一个使用指令还是程序集引用?)CS0246无法找到类型或命名空间名称'FirefoxDriver‘(您是缺少使用指令还是程序集引用?)CS0103名称'By‘在当前上下文测试中不存在
我下载了NUnit 3测试适配器(per https://stackoverflow.com/questions/47375788/install-nunit-with-visual-studio-2017)。
由于我在本地主机上也有HTTP 502.5进程错误,所以我信任IIS证书(每个https://blogs.msdn.microsoft.com/robert_mcmurray/2013/11/15/how-to-trust-the-iis-express-self-signed-certificate/)。
最后,我按照https://developercommunity.visualstudio.com/content/problem/27820/cs0246-the-type-or-namespace-name-system-could-not.html做了一个dotnet还原
我所做的一切都无法阻止这些错误消息。由于我是Selenium新手,而且我是从一个关于Selenium基础知识的教程中运行这个代码文件的,所以我不知道问题出在哪里。有没有人知道我可能做错了什么,或者我需要做些什么来解决这个问题?
更新1:
谢谢,凯特。我在References节点下有Nunit,但没有OpenQA.Selenium,所以我尝试在Manage包中查找它,但是找不到它。我已经拥有的是Selenium.Webdriver和Selenium.Support。你知道为什么在浏览下找不到OpenQA.Selenium吗?提前谢谢。
更新2:
在添加包Selenium.WebDriver、Selenium.Support和Selenium.WebDriverBackedSelenium之后,我设法消除了错误消息,但是当运行am时,我得到了一条错误消息,即不能直接启动具有输出类库类型的项目。为了调试此项目,请向此解决方案中添加引用库项目的可执行项目。将可执行项目设置为启动项目‘。我正在努力弄清楚如何做到这一点。如有任何明确的解释,将不胜感激。
更新3:
最后,也设法消除了上面的错误消息。我只需要安装Selenium.Firefox.WebDriver软件包。谢谢你提供的帮助
发布于 2019-04-09 12:03:02
您的前两个错误导致了其余的错误。
您需要做的第一件事是确保您的项目(不是您的解决方案)具有对NUnit和OpenQA的引用。
在Visual 2017及更高版本中,打开解决方案资源管理器,然后在项目中展开引用节点,然后展开NuGet节点。您应该看到列出了NUnit和OpenQA.Selenium。如果没有,右键单击并选择“管理NuGet包”.若要打开项目的NuGet并同时安装两者,请执行以下操作。这应该可以解决你所遇到的大部分问题,并使你更容易处理其他问题。
您可以在项目这里中找到有关处理引用的更多信息。
如果正确的引用已经到位,则可能需要调整设置以确保Selenium和NUnit dll文件被复制到您的运行目录中。您可以从上面提到的链接中找到有关如何做到这一点的信息。
https://sqa.stackexchange.com/questions/38668
复制相似问题