2017-05-24 5 views
0

私はXML形式のテストデータと、WebElement(Selenium)のテキストまたは値を持っています。文字列と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")); 

また、あなたは、文字列の行末を正常化しようとすることができます10進数= 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

関連する問題