C# 在C语言中解析任意主机名/IP地址#
我正在用C#编写行为测试,使用Selenium和Chrome web驱动程序。除了本地调试之外,我还想通过强制C#将站点的主机名解析为临时IP地址来测试临时上下文中的更改 有没有一种方法可以为给定主机名设置任意IP地址,而无需编辑C:\windows\system32\drivers\etc\hosts,也无需设置实际的DNS记录 例如,当我进行以下调用时,我希望Selenium转到可以在调试应用程序上下文中手动设置的IP地址:C# 在C语言中解析任意主机名/IP地址#,c#,.net,debugging,C#,.net,Debugging,我正在用C#编写行为测试,使用Selenium和Chrome web驱动程序。除了本地调试之外,我还想通过强制C#将站点的主机名解析为临时IP地址来测试临时上下文中的更改 有没有一种方法可以为给定主机名设置任意IP地址,而无需编辑C:\windows\system32\drivers\etc\hosts,也无需设置实际的DNS记录 例如,当我进行以下调用时,我希望Selenium转到可以在调试应用程序上下文中手动设置的IP地址: using(var driver = new ChromeDriv
using(var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl(url);
}
您的行为测试应该在安装步骤中获取/读取一些配置源(自定义配置文件、环境变量等),并从该源获取站点地址。因此,您只需更改配置设置,而不是在测试中更改主机文件或代码
此外,在理想情况下,您应该为暂存和生产环境使用不同的主机名。。。在您的情况下,您可以在测试中直接使用IP地址,而不是主机名。您只需将该值添加到app.config,并根据您想要使用的环境更改url即可
//app.config file
<add key="URL" value="http://123.45.67.89/" />
using System.Configuration;
using(var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl(ConfigurationManager.AppSettings["URL"]);
}
//app.config文件
使用系统配置;
使用(var driver=new ChromeDriver())
{
driver.Navigate().gotour(ConfigurationManager.AppSettings[“URL]”);
}
你的回答与我问的问题无关。谢谢你的建议,但不谢谢。@v623我的观点是你应该从另一个方向考虑,而不是解决主机名解析的问题,因为这更像是一个肮脏的黑客行为