2014-03-04 2 views
0

<b>, <i>, <sup> 등과 같이 html 요소 형식이없는 웹 사이트에서 콘텐츠를 성공적으로 테스트 할 수 있습니다. 쉬운. 방금 String.equals("expectedContent")을 사용합니다. 그러나 <br> 또는 <p>과 같이 중간에 html 요소가있을 경우 서식이 지정되지 않은 예상 된 내용에 포함되어 있지 않으므로 테스트가 실패합니다. 사과와 사과를 비교할 수 있도록 Selenium에서 html 요소를 무시할 수있는 방법이 있습니까?웹 사이트 콘텐츠의 형식화되지 않은 콘텐츠를 예상 값으로 사용하여 테스트했습니다

<p><strong>Paragraph-a.</strong></p> 
<div> 
<p>paragraph-b.</p><p>paragraph-c.</p> 
</div> 

내 테스트 내용은 다음과 같습니다 : 단락-A 여기

샘플 HTML입니다. paragraph-b. paragraph-c.

미리 도움을 주셔서 감사합니다.

+0

는 당신이 우리가 보는 몇 가지 HTML을 게시 할 수 스크립트 아래에 주어진 시도하세요? – Richard

+0

안녕하세요 리차드 ... 내 게시물에 html을 추가했습니다. 도움을 주시면 ... .. txx –

+0

게시물을 편집하여 거기에 추가 할 수 있습니다. – Richard

답변

1

다음 결과는 첫 번째 단락에 <br> 태그가 포함되도록 약간 수정 된 질문의 HTML을 기반으로합니다.

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get("file:///C:\testing\\test.html") 
element = browser.find_element_by_xpath("/html/body") 
print element.text 
browser.close() 

간단한 XPath를 /html/body이 태그의없이 요소를 검색하고 다음과 같이 내가 사용

<html><body> 
<p><strong>Para<br>graph-a.</strong></p> 
<div> 
<p>paragraph-b.</p><p>paragraph-c.</p> 
</div> 
</body></html> 

파이썬 2.7.6 코드입니다.

Para 
graph-a. 
paragraph-b. 
paragraph-c. 

나는 /html/body/p/strong를 사용하여 첫 번째 단락의 내용을 드릴 다운 할 수 있습니다.

Para 
graph-a. 

당신은 내가 문제가 아직 무슨 생각을 말할 수 있습니까? 태그는 <strong>을 출력하지 않는다는 점에서 사라지지만 <br> 태그는 개행 문자로 변환됩니다. 그냥 브라우저 닫기 전에, 파이썬 스크립트에 몇 줄의 코드를 추가하자

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get("file:///C:\testing\\test.html") 
element = browser.find_element_by_xpath("/html/body/p/strong") 
print element.text 
print text == "Paragraph-a." 
print text == "Para<br>graph-a." 
print text == "Para\ngraph-a." 
browser.close() 

이 스크립트는 다음과 같은 출력 :

Para 
graph-a. 
False 
False 
True 

결론은 우리가 대부분의 HTML 태그를 무시할 수있는 반면, 줄 바꿈을 포함하는 요소와 비교할 때주의해야합니다.

+0

감사합니다. 나는 이것을 밖으로 시험 할 것이다. 당신의 대답을 대단히 감사하게 생각하십시오. –

0

(가)

int no_of_paragraphs = driver.findElements(By.tagName("p")).size(); 

for(int i=1;i<=no_of_paragraphs;i++) 

{ 

    System.out.print(driver.findElement(By.cssSelector("p:nth-of-type("+i+")")).getText() + "\t"); 

} 
관련 문제