C# 关于如何运行Selenium测试以检查网站是否存在,有什么建议吗?

C# 关于如何运行Selenium测试以检查网站是否存在,有什么建议吗?,c#,selenium,selenium-webdriver,visual-studio-2017,C#,Selenium,Selenium Webdriver,Visual Studio 2017,我需要运行一个测试,确认一个网站可以从网上获得。这是我到目前为止所拥有的,但我很确定这是错误的,任何输入或提示都将不胜感激,谢谢 var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("headless"); using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutin

我需要运行一个测试,确认一个网站可以从网上获得。这是我到目前为止所拥有的,但我很确定这是错误的,任何输入或提示都将不胜感激,谢谢

        var chromeOptions = new ChromeOptions();
        chromeOptions.AddArguments("headless");

        using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), chromeOptions))
        {
            driver.Navigate().GoToUrl("https://example.azurewebsites.net/");
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            wait.Until(d => d.Title.StartsWith("", StringComparison.OrdinalIgnoreCase));
            Assert.AreEqual(driver.Title, "https://example.azurewebsites.net/");
        }

如果您的目的只是检查站点是否处于活动状态,那么HttpRequest是比Selenium更好的方法。您只需向URL发送一个简单的GET请求并检查状态代码即可。 如果该站点处于活动状态,您将获得200。 以前,我使用此方法检查路由器连接状态。 我已将GET请求发送到“”,并检查了状态。
希望这有帮助。

如果您的目的只是检查站点是否处于活动状态,那么HttpRequest是比Selenium更好的方法。您只需向URL发送一个简单的GET请求并检查状态代码即可。 如果该站点处于活动状态,您将获得200。 以前,我使用此方法检查路由器连接状态。 我已将GET请求发送到“”,并检查了状态。
希望这能有所帮助。

要检查网站是否正常运行,您可以使用以下代码:

public boolean checkWebStatus(String url, int timeout) {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            return true;
        }
        else
          return false;

}
Java:

public boolean checkWebStatus(String url, int timeout) {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            return true;
        }
        else
          return false;

}
C#

或者您可以对URL执行HTTP头请求

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("your url");
request.AllowAutoRedirect = false;
request.Method = "HEAD";
try {
    response = request.GetResponse();
    //Check response here
} catch (WebException wexp)
{
    //Catch exception
}

注意:使用SELENIUM仅检查网站是否已启动,这是不可取的,而且比上面的实现慢得多。

要检查网站是否已启动,可以使用以下代码:

public boolean checkWebStatus(String url, int timeout) {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            return true;
        }
        else
          return false;

}
Java:

public boolean checkWebStatus(String url, int timeout) {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            return true;
        }
        else
          return false;

}
C#

或者您可以对URL执行HTTP头请求

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("your url");
request.AllowAutoRedirect = false;
request.Method = "HEAD";
try {
    response = request.GetResponse();
    //Check response here
} catch (WebException wexp)
{
    //Catch exception
}

注意:使用SELENIUM只检查站点是否已启动,这是不可取的,而且比上面的实现慢得多。

此外,SELENIUM速度慢得多,因为它需要加载所有web元素。此外,Selenium的速度要慢得多,因为它需要加载所有web元素。使用Ping获取响应?使用Ping获取响应?