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获取响应?