如何使用 App.config 存储 url 并在使用 C# 测试 Selenium 测试时检索 url?

问题描述 投票:0回答:3

我创建了一个 App.config 文件来存储 url,而不是在整个单元测试中对它们进行硬编码,因此如果 url 发生变化,我只有一个地方需要更改它们。这是我的 App.config(出于发布目的而更改了 url) ):

<configuration>
  <appSettings>
    <add key="Home" value="https://home.com"/>
    <add key="AnotherPage" value="https://anotherpage.com"/>
  </appSettings>
</configuration>

在我的测试中,我尝试使用这样的网址:

using Xunit;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using System.IO;
using System.Configuration;

namespace Homepage.Tests.UI.Tests
{
    public class HomePageShould
    {
        [Fact]
        public static void Open()
        {
            var url = ConfigurationManager.AppSettings["Home"];
            using IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl(url);

        }
    }
}

我收到此错误:

结果消息:System.ArgumentNullException:参数“url”不能为空。 (参数“值”)

我也尝试过这个:var _homeUrl = ConfigurationManager.AppSettings.Get("Home");

并得到同样的错误。

我做错了什么以及如何让它工作?

c# selenium app-config
3个回答
0
投票

这不起作用,因为创建新项目时会自动生成 App.config 文件。最有可能的是,您创建了错误类型的项目。

您可以在此处找到有关配置和 Selenium 的更多信息。

附注我会将其作为评论发布,但我的声誉是 <50. Thank you for understanding!


0
投票

App.config 文件应该在创建项目时自动创建。因此,如果您这样做,也许您不需要手动创建它。可能是手动创建此文件可能会出现找不到该键下的值的问题。除此之外,您的代码看起来可以获取该值。


0
投票

如果您手动创建了 App.config 文件,则可以执行以下任一步骤:

  1. 添加对 System.Configuration 的引用:

    1. 在解决方案资源管理器中右键单击您的项目。
    2. 选择添加 -> 参考。
    3. 在参考管理器中,选择程序集。
    4. 搜索 System.Configuration 并选中它旁边的框。
    5. 单击“确定”添加引用。
  2. 通过 NuGet 添加 System.Configuration.ConfigurationManager:

    1. 在解决方案资源管理器中右键单击您的项目。
    2. 选择管理 NuGet 包
    3. 在 NuGet 包管理器窗口中,转到“浏览”选项卡。
    4. 搜索 System.Configuration.ConfigurationManager。
    5. 在搜索结果中找到 System.Configuration.ConfigurationManager。
    6. 单击它并选择安装。

现在您将能够通过执行此行来访问 App.config 文件中的值 - ConfigurationManager.AppSettings["key"];

来源:ChatGPT

© www.soinside.com 2019 - 2024. All rights reserved.