我正在使用Selenium远程WebDriver。我从CSV文件中读取所有链接并对这些链接运行测试。但有时会出现404响应。
在Selenium WebDriver中有没有一种方法可以检查我们是否获得HTTP响应200?
我正在使用Selenium远程WebDriver。我从CSV文件中读取所有链接并对这些链接运行测试。但有时会出现404响应。
在Selenium WebDriver中有没有一种方法可以检查我们是否获得HTTP响应200?
public static boolean linkExists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
使用以下方式:
WebDriver driver = new FirefoxDriver();
for(String url : csvArray){
if(linkExists(url)){
driver.get(url);
.
.
.
}
}
// Check for 404 page:
var pageNotFoundTitleText = "not found";
if (driver.Title.ToLower().Contains(pageNotFoundTitleText)) throw new Exception("### 404 - Page Not found: " + link);
您可以使用RestAssured来完成它 import static com.jayway.restassured.RestAssured.given;
int returnCode = given().when().baseUri(url).get().getStatusCode();
if (returnCode == 200) {
webDriver.get(url);
helper.asserts.assertTrue(helper.finder.isElementPresent(By.className("ticketType")));
} else {
helper.asserts.fail("This url "+url+" is returning the following code: " + returnCode);
};
这是一种方法(我想:P)。
您可以使用JavaScript检查页面上的http状态。可以按以下方式在Java中调用JS:
((JavascriptExecutor) webDriver).executeScript(js);
最好的选择是在节点硬盘上创建一个虚拟网页,并在该页面上使用JS函数调用executeScript()中的函数。
您也可以尝试将所有JS代码发送到executeScript()中,但我不确定是否有效。