2017-05-24 5 views
0

XML 형식의 테스트 데이터와 WebElement (Selenium)의 텍스트 또는 값이 있습니다.문자열과 셀렌 텍스트 사이의 AssertEqual - 왜 실패합니까?

두 값을 모두 비교하면 Assert가 실패합니다. 처음에는 XML 공백 (서식 때문에)이 명백한 문제 였지만 제거한 후에도 여전히 다음 결과를 얻습니다. Word에 오류 로그를 붙여 넣었으며 공백 문자에 시각적 인 차이가 없습니다.

Output of Assert

편집 : 추가 조사가 어설가 개행 문자에 실패 보여줍니다. Word로 복사 할 때이 문자 다음의 공백은 예상 결과와 실제 결과가 다릅니다.

편집 2 : 십진법의 16 진수는 13 대 10이므로 다른 문자입니다. 질문은 하나를 다른 것으로 변환하는 방법입니까?

+0

당신이 그것을 '실패'하는 문자에서 결정하기 위해 문자로 그들에게 문자를 비교하는 시도? – Silvermind

+0

좋은 팁, 결과와 함께 내 질문 편집 – FDM

답변

0

비교 한되는 문자열 라인 피드 (진수 = 10, \n) 및 캐리지 반환의 혼합물을 가지고 :

Assert.AreEqual(s1, s2, false, new CultureInfo("de-DE")); 

또한, 당신은 당신의 캐릭터 라인 엔딩 정상화를 시도 할 수 있습니다 십진수 = 13, \r).


내가 가장 쉬운 해결책은 문자열을 정상화하는 것입니다 생각 :

yourString.Replace("\r\n", "\n").Replace('\r', '\n'); 
1

정확한 CultureInfo을 지정해야한다고 생각합니다. 예를 들어 : ( Normalize newlines in C#

+0

CultureInfo.InvariantCulture를 추가하려했지만 작동하지 않았습니다. – FDM

+0

예, 라인 결말에 대한 의견을 듣고 나면 변화하는 문화가 작동하지 않을 것이라고 생각합니다. 대안으로 줄 단위로 텍스트를 비교해 볼 수 있습니다 (String.Split()로 분할). –

+0

그리고 어떤 캐릭터로 나뉘 었습니까? – FDM