c# - 使用 selenium Web 驱动程序在 Visual Studio 中测试本地项目

标签 c# visual-studio-2010 selenium nunit phantomjs

我正在尝试使用 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/

相关文章:

c# - 桥梁模式与策略模式

c# - 获取进程的所有窗口句柄

c# - 为什么在 C# 中顺序对静态初始化很重要?

java - 如何在 Selenium 中设置 Chrome 的设置能力?

python - 在等待时使用 Selenium 中的 Xpath 获取元素的第 n 次出现

java - Selenium 无法定位 html 页面中的任何元素

c# - WCF 服务故障处理 WS-Discovery Resolve 消息

c++ - 将 C++ __fastcall Hook 从 x86 移植到 x64

visual-studio-2010 - 臭名昭著的 Visual Studio 错误 C1902,VS 配置

c++ - Visual Studio (std::cout) 不打印我的变量值