我正在尝试使用 NUnit 和 Selenium Web 驱动程序建立一个包含验收测试的 Visual Studio 项目,我希望能够“运行测试”并以此启动我的网站,使用 selenium 运行测试并退出.
到目前为止我已经有了这个基本设置:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.PhantomJS;
namespace FrontEndTests.AcceptanceTests
{
[TestFixture]
class Phantom
{
private PhantomJSDriver _driver;
[SetUp]
public void WhenOpeningANewWebPage()
{
_driver = new PhantomJSDriver();
_driver.Navigate().GoToUrl(@"localhost");
}
[Test]
public void ThenICanFindAClass()
{
Assert.NotNull(_driver.FindElement(By.ClassName("featured")));
}
[TearDown]
public void Finally()
{
_driver.Quit();
}
}
}
如果我将 URL 设置为“www.google.com”,测试会顺利通过(设置了正确的类),但 localhost 在 selenium 中返回 elementnotfoundException。
如何让它在本地工作?
谢谢
最佳答案
基于此:
“当我在 Visual Studio 中运行该项目时,它指向 localhost:31106 我尝试使用它作为 URL,但这给出了相同的错误 - Gregg_1987”
IIS 必须正在运行您的应用程序。当您单击“运行”时,它会在应用程序运行期间在 IIS Express 中启动该应用程序。然后,Visual Studio 附加到此文件以用于执行目的。
如果您尝试对此执行 Selenium,则必须安装常规 IIS 并通过 IIS 注册应用程序,以便可以访问它。然后你的测试就可以通过在 IIS 中注册的 URL 来命中它。否则,您将必须尝试使用 IIS Express 以编程方式执行应用程序,此处有一些指导:Automatically start ASP.MVC project when running test project
一旦可以通过 IIS 访问该站点,您就可以使用 Selenium 测试来访问它。
关于c# - 使用 selenium Web 驱动程序在 Visual Studio 中测试本地项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462359/