2014-09-22 3 views
2

웹 페이지의 누락 된 이미지에 셀레늄을 사용하여 자동화해야합니다. 이제 이미지는 세 가지 방법으로로드 할 수 있습니다 :누락 된 이미지 찾기 셀렌

<div class="someIcon" autoID="some-icon"></div> 

위의 정보는 CSS에서 올 수 있습니다 (예를

에 대한 1)

<img src="http://something.com/google.png"> 

2)

<img src="/path/to/file/image.jpg"> 

3)

.someIcon { 
height: 97px; 
width: 93px; 
background-image: url("../assets/images/some_icon.png"); 
background-size: 93px 97px; 
} 

이제 html 페이지에 이미지를로드하는 다른 방법, 어떻게 이미지가 누락되었는지 여부를 식별하는 자동화를 작성할 수 있습니까?

문제점 1)를 사용하여 해결 될 수

List<WebElement> imagesList = _driver.findElements(By.tagName("img")); 
for (WebElement image : imagesList) 
{ 
    HttpResponse response = new DefaultHttpClient().execute(new HttpGet(image.getAttribute("src");)); 
    if (response.getStatusLine().getStatusCode() != 200) 
    // Do whatever you want with broken images 
} 

방법 2) &) δ 당신이 첫 번째 경우와 동일한 방법을 사용할 수 있도록

감사합니다, 두 번째 경우 Mateen

답변

0

은 SRC의 값은 전체 URL에 해결 될 것입니다.

세 번째 케이스의 경우 background-image 값을 얻으려면 getCssValue으로 전화해야합니다. 반환 값이 url("http://<server>/assets/images/some_icon.png")의 형태가 될 것입니다 그러나 그래서 당신은 그것을 구문 분석해야합니다

WebElement div = driver.findElement(By.className("someIcon")); 
String bgImage = div.getCssValue("background-image"); 

Matcher m = Pattern.compile("\\\".*\\\"").matcher(bgImage); 

if (m.find()) { 
    String imgUrl = m.group().replace('"', ' ').trim(); 
    // verify imgUrl 
} 
+0

당신이 SRC의 값이 전체 URL에 해결 될 것입니다 두 번째 경우 정확합니다. 감사 –